Re: Cocoa Books (was New to Cocoa)
Re: Cocoa Books (was New to Cocoa)
- Subject: Re: Cocoa Books (was New to Cocoa)
- From: Simon Stapleton <email@hidden>
- Date: Sat, 12 Oct 2002 17:26:23 +0200
From: Ondra Cada <email@hidden>
On Friday, October 11, 2002, at 10:44 , Brian E. Howard wrote:
Cocoa should be
easier to learn than C++ or C# or Java, not harder!
It is, considerably.
I can't comment on C#, and my Java experience is limited and rusty, but
as far as Cocoa vs C++ goes, I have to entirely agree with Ondra here.
Objective-C is way easier than C++. Objective-C + Foundation is way
way easier than C++ + STL. And Objective-C + Cocoa is way way way
easier than C++ + STL + <your choice of interface library here>.
Believe me. I know. I've done C++, STL and RogueWave, and many many
interface toolkits. It's all difficult.
I would go as far as to say that Cocoa/Objective-C is the second best
environment for learning OO principles, especially for someone who
already has a little experience with C. The absolute best, of course,
being Smalltalk.
As far as learning Cocoa goes, it really, really helps if you already
have (even a limited) knowledge of C, as, from there, picking up the
basics of Objective-C is a very small step. If you're coming from C++,
you do have to unlearn a lot of stuff, but if we're talking raw
beginners here...
A good teacher (or book[1][2]) would teach this and the principles of
OO at the same time, slowly mingling in the contents of the foundation
framework as needed. I appreciate the need for people to see something
happening, and wrapping 25 lines of code and a bit of playing in IB to
create a text editor is all well and good, but it doesn't teach good
OO. So stick with the 'Model' side of the equation for the moment,
doing which would introduce the concepts of inheritance, encapsulation,
etc, along with some of the 'basics' of Cocoa - notifications,
delegation, memory management, etc. Start getting those good patterns
ingrained right from the start.
Next up, introduce MVC, and then let the learner start playing with IB.
It's when we start playing with that, that the fun really starts, but
if you already understand the fundamentals, it's a lot easier to grok
concepts like "File's Owner". Otherwise it's a "you connect that
there, because you do, and it doesn't work if you don't" - not a good
way to learn.
At this point, assuming enough of AppKit was covered in the last step,
the learner should be able to start doing interesting things all by
themselves.
I know, it'd be a lot less fun than connecting up some buttons in IB
and copying 25 lines of code, but I suspect an approach like this might
make for more, better, programmers and less _really_ basic questions on
the various lists.
I can't see that a fundamentals of Cocoa course rolling up the above
should take more than 5 days, given good teachers and pupils with a
basic understanding of C. For (as an example) C++/STL/X11, I'd suggest
3 weeks or (most likely) more to get the same pupils to the point where
they can do useful work.
As I said before, the only environment which (IMHO) can better Cocoa is
Smalltalk. But who uses Smalltalk these days?
Speaking of which, the one book I'd like to see is an Objective-C
version of Beck's "Smalltalk best practice patterns". Man, that would
be _so_ cool. And maybe something like Myers' "Effective C++",
although that mainly covers how to get round the nastiness of C++ and
still be productive[3].
Simon
[1] I can't, of course, comment on any of the books out there, as I
have none except PDFs of some of the original Openstep books, some of
which I believe the O'Reilly book was based on. Similarly the courses
available.
[2] This is, of course, all my own personal feelings on the matter.
Others may well feel differently, and may well have written books to
that effect, which is more than I've done ;-)
[3] As well as being required reading before any C++ job interview.
--
PGP Key Id : 0x50D0698D
--
Your mouse has moved. You must restart Windows NT for this change to
be recognised.
_______________________________________________
cocoa-dev mailing list | email@hidden
Help/Unsubscribe/Archives:
http://www.lists.apple.com/mailman/listinfo/cocoa-dev
Do not post admin requests to the list. They will be ignored.