A few weeks back I asked for comments and suggestions regarding future C and C++ topics. Many of you sent me some thoughtful and enlightening notes, and, frankly, I’m delighted by the response. Several readers suggested I look at Objective-C, so that’s what I’ve spent much of my spare time doing these past few weeks.
Objective-C is really cool! I used to program in C, and had Objective-C ever been put before me I might well have become an object-oriented developer. I recall finding C++ very intimidating when I tried to learn it, especially with all the issues surrounding static versus virtual methods. What confusion! Objective-C, on the other hand, has a much simpler model: everything is dynamic, and any object can send any message to any other type of object. You can even send messages to an object that the object doesn’t recognize. This fits much better with my vision of how object-oriented programming should work.
I also like the way Objective-C per se is a minimal syntax layered over existing C syntax. Rather than having to learn a new language (C++) that is confusingly similar to an existing language (C), I can leverage my existing C knowledge and move gracefully into the object-oriented paradigm. Why, I wonder, did C++ win out in the marketplace?
Good as it is, Objective-C seems to have been on its way to becomming a “dead” language. It’s first major success (I believe) was its use on the NeXT platform, but as NeXT went, so, apparently, did Objective-C. Apples’ use of Objective-C for the GUI framework of Mac OS X has resurrected interest in the language. (Perhaps Latin will be next?) I’ve heard people claim that OS X now represents the largest installed Unix base. Regardless of whether that’s true, OS X is certainly out there in big numbers, lots of people are developing for it, and many of those people are using Objective-C.
Post your thoughts on Objective-C. Will it make a comeback that extends beyond the Mac OS X platform?