What’s Missing?
One thing I was hoping for was an equivalent of Smalltalk’s become: method, which replaces all references to one object with references to another. This feature would be much easier to add to Objective-C 2.0, since the garbage collector needs to track which objects have references to which others, but it seems not to be present.
Diehard Smalltalk (and Lisp) fans would have been hoping for support for blocks (closures). This is less important in Objective-C than in Smalltalk, since Smalltalk uses them to implement all of its control structures, but it’s still a nice feature. Most of what you need them for can be accomplished with function pointers and trampolines, but it’s not nearly as elegant.
Finally, my own pet hate—C’s sorry excuse for a preprocessor—is still there. I would have preferred that Apple add a real preprocessor and implement features such as properties and for each using that.
Apart from that oversight, the language is in good shape. Most of the new features look useful, without resorting to the kind of keyword overloading and feature creep that made C++ the mess it is today.