Linked by Jared White on Thu 24th Apr 2003 17:49 UTC
General Development There are two major varieties of Cocoa available. The first variety, possibly the more well known of the two, is the kind that you can use to make a nice warm cup of chocolate milk. While tasty, it's hardly proper subject matter for an operating systems information site. The second variety is far more on-topic: a programming environment for Apple Mac OS X that is the modern evolution of of the original NeXTSTEP frameworks. That's what I'm here to talk about today.
Permalink for comment
To read all comments associated with this story, please click here.

>1) Message sends to null pointers are just ignored.
How then do you figure out if you've made such a programming error? I've seen such things happen in C++ in UNIX, but the consequences aren't good and very hard to track down.

>2) The compiler doesn't need to know - the runtime figures >it out.
What happens then if I manage to call a method on an object that doesn't support it?

>3) Its just simpler that way. Objective-C objects are not >meant to be thought of like C structs.
Simpler for whom? Memory management is the number one cause of bugs in software. If you can't put some objects on the stack, that's more memory to manage (and thus more potential bugs). To be honest, I don't know a whole hell of a lot about autoreleasepools or whatever they're called, so that might solve some of this problem.

>4) If you have a method with a lot of arguments, named >parameters make things a lot easier, because there is no >chance you are going to mix up the order. Its amazing how >upset everyone gets over the weirdness of the square >brackets initially. I did too, but you get to love them >after a day or so, trust me!
>your example would be something like
>[v addExample:[Integer new:1]];
>I don't see how that is any harder to read.
Well, I remembered the object initialization process for Objective-C requiring two methods, but I guess I'm wrong. As far as naming parameters being easier, not only do you have to remember their order, you also have to remember their name, unless you have a reference for the class you're using, and then the point is moot.