Saturday, December 1, 2007

Developing With Leopard

Mike Ash posts his thoughts on what’s new in Leopard for developers.

Garbage Collection
Yes, this is a big deal, and Apple seems to have done a good job. I don’t know why people thought this would be impossible, though, given that other versions of Objective-C have had garbage collection for a long time.
Objective-C 2.0
Like Ash, I’m not really a fan of properties and find the new for…in syntax unexciting. However, given the addition of garbage collection and the changes in the 64-bit runtime, I think it definitely deserves to be called 2.0.
Xcode 3
You’d think that having a rock-solid IDE would be a high priority, but Xcode (like Project Builder before it) has consistently been “buggy and weird.” Like Ash says, it’s not as if there’s an alternative, but I spend as little time in it as possible.
Interface Builder 3
Overall a huge improvement. Too bad about 2.x palette compatibility, though.
Instruments
I haven’t had a chance to use it much yet, but it looks promising. DTrace is great.
Core Animation
Good technology, but there’s little guidance on when and how it should be used.
CFStringTokenizer
I’ll be using this.
Miscellaneous API additions
As with Tiger, Leopard includes lots of small improvements to the APIs, many of which I’d already rolled my own versions of. Eventually, if the Apple versions prove solid and flexible enough, and when I’m no longer supporting Tiger, I’ll be able to delete some code.
64-bit support
This is going to be important, and I’m glad it made the Leopard release. Apple’s treatment of Carbon developers has been shameful, even though the actual decisions have been unsurprising and were arguably the correct ones.

1 Comment RSS · Twitter


I think it definitely deserves to be called 2.0.

It's more like version 7.0 of the language, though. If they're going to apply arbitrary version numbers, they might as well inflate the version number properly.

Xcode 3

There is a potentially wonderful build system concealed within Xcode. I wish they'd let us have direct access to it via frameworks.

Instruments

Needs instrumenting itself. Slow memory hog.

The one DTrace negative is that you can't use it to instrument kernel extensions, which is a major bummer for people working on drivers.

Leave a Comment