[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: peasant revolt against DrScheme!



>>>>> "Matthias" == Matthias Felleisen <matthias@cs.rice.edu> writes:

Matthias> Mike, 

Matthias> I also thought for a long time that showing kids how
Matthias> closures are objects and that one can build objects with
Matthias> closures is a good way to expose them to OOP and the whole
Matthias> notion of objects.

Matthias> In all honesty, I have come to doubt that the
Matthias> message-dispatching style of Scheme is a good way for
Matthias> novices to learn about OOP. For those who have already
Matthias> studied C++/Java classes and objects, probably yes. For the
Matthias> others, an explanation of how something works doesn't
Matthias> explain how you're to use it.

Sure, that's a whole different lecture.  On the other hand, this part
takes about 1.5 hours, and just pretty much works.  You'll be glad to
know that at the end of 1.2 of these hours, the *students* came up
with the concept of mixins by themselves.

Matthias> In HtDP I have followed the strategy to swamp them with
Matthias> functions that look similar in the first few sections. Then
Matthias> we say: hey all these things look alike. They must look
Matthias> alike because the design recipe takes you through similar
Matthias> stages in the development. How can we do better? ABSTRACT!

The real problem is that the design of Java/C++-style OOP is
demonstrably arbitrary.  I have yet to find a convincing example that
shows why OOP (especially the semantics of this) has to be the way it
is.  In my own programs, it pretty much never shows up at all.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla