Learning Objective-C (Re: Jeff Lamarche: Public Enemy #1)
Learning Objective-C (Re: Jeff Lamarche: Public Enemy #1)
- Subject: Learning Objective-C (Re: Jeff Lamarche: Public Enemy #1)
- From: Marcel Weiher <email@hidden>
- Date: Tue, 12 Jun 2001 09:32:25 +0200
On Tuesday, June 12, 2001, at 12:27 Uhr, email@hidden
wrote:
[snip]
The best synonym I can think of for
"inane" in the context I used it is: silly. You wouldn't suggest that
someone learn to drive on a big rig, or learn to fly in a commercial
jet?
Such a comment would be deemed "inane" by almost anyone. Yet, in your
posting, you recommended that people NOT learn the basics of
programming,
but rather jump right into an advanced development environment that
makes
heavy use of some pretty sophisticated concepts. How could this
possibly be
seen as anything other than silly?
Very easily.
The "sophisticated concepts" introduced by Objective-C are actually
taken from Smalltalk. Smalltalk was created at the LRG of Xerox PARC.
LRG stands for Learning Research Group, and it turns out that Smalltalk
was specificially designed, and continually redesigned to make it even
easier to learn, because that was the primary purpose of the whole
exercise. In the end, Smalltalk was reduced to objects and messages
(+some
other details such as classes,methods,assignements,returns), and that
was all they needed.
So the 'object side' of the Objective-C hybrid is actually the simple
part, it is the integration with C that introduces strangeness and
difficulties. It also turns out that in day to day Cocoa programming,
you don't use that much 'C', except for curly braces to delimit methods,
some conditionals, possibly a loop or two (but fewer of those if you use
HOM), declarations of arguments and temps and the odd assignment and
return statement. Well, at least that's how it is for me.
So the approach of teaching Objective-C from the 'Objective' perspective
and only introducing the 'C' side in small doses as necessary makes a
lot of sense, technically, historically and pragmatically. I am pretty
sure that one can disagree with this reasoning, but the idea is most
certainly not at all *silly*.
[..]
False encouragement is worse than false modesty. Encouragement without
honesty
is downright sadistic. You can't jump in to Cocoa with both feet if
you don't
understand the basic programming syntax and concepts upon which it is
built.
Many programmers with moderate programming skills have been
overwhelmed by
Cocoa, someone without any programming knowledge can't help but be.
This turns out not to be the case.
Experience shows that relative novices have a much easier time with
Objective-C/Cocoa/WebObjects than 'experts' in other areas, particularly
in, er, lesser object oriented environments. The reason for this seems
to be the old fact that unlearning things is magnitudes more difficult
than learning things.
[more flamage deleted]
Regards,
Marcel