• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Cocoa Books (was New to Cocoa)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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.
  • Follow-Ups:
    • Re: Cocoa Books (was New to Cocoa)
      • From: Ondra Cada <email@hidden>
  • Prev by Date: Re: cocoa-developers all over the place
  • Next by Date: Beginner Question
  • Previous by thread: Re: Cocoa Books (was New to Cocoa)
  • Next by thread: Re: Cocoa Books (was New to Cocoa)
  • Index(es):
    • Date
    • Thread