ONJava.com -- The Independent Source for Enterprise Java
oreilly.comSafari Books Online.Conferences.

advertisement

AddThis Social Bookmark Button
Article:
  C is for Cocoa
Subject:   Why not avoid ObjC?
Date:   2003-07-23 21:18:30
From:   tallama
Response to: Why not avoid ObjC?

Hi, this is Seth Roby.


I admit readily that Objective-C is not the only path to Cocoa development, and I think that that is a wonderful thing.


However, Objective-C is definitely the best documented route, once you get to the place where you're consulting the documentation. Aside from that, it is an elegant, simple language with the power of C behind it and the breadth of Cocoa in front of it.


But that doesn't mean it's the best language for all situations. If you need to use a bit of Java code, then by all means use Java; you can still use Cocoa (albeit a bit slower, and without a few functions).


If you're an AppleScript wiz, AppleScript Studio can be a wonderful way for you to make the leap from helpful little bits to helpful big bits. And nothing can beat AppleScript when you need to do dynamic interapplication communication between applications that don't know each other.


And I continually hear wonderful things about Python and Ruby. PyObjC sounds very promising, but alas I haven't had time to try either of these languages. Both are on my to do list.


But the bottom line, I think, is that Objective-C is a wonderful middle road. It allows for the bit-twiddling that C is king at, and the Rapid Application Development that Cocoa is wonderful for. With Panther's new Binding features built into IB, I think Objective-C has a bright future in front of it, as our controller code shrinks into the distance of memory.


But whatever you end up using for Cocoa programming, and as has been said in some of the other comments, C is really the grand-daddy of almost every language that's ruling any roost right now. Learning C will help you learn almost any other language you want to pick up, as well as get you some really great experience in computing in general.