Cocoa, Carbon, and iDVD

The comments for Slashdot’s “Which Coding Framework for Mac OS X?” are frustrating. I have been experimenting with Cocoa lately, and I really like it. Objective-C is slick and the UI frameworks are good. But I’m so tired of seeing Carbon discounted as just a transitional technology and not as “native” as Cocoa. Now that it is possible to mix-and-match Cocoa and Carbon windows in the same application, hopefully we will see both technologies used where appropriate.

As big a Carbon fan as I am, though, I would probably recommend Cocoa for first-time programmers looking to write a simple X-only app. But it’s not appropriate for all apps. Photoshop and similar cross-platform apps will stay Carbon and C++ for some time to come, and many have their own internal frameworks to make life easier between the two platforms.

Unsanity.org has a good Cocoa vs. Carbon article that discusses the speed issue. Many people have noticed that recent Cocoa apps from Apple such as iPhoto and iCal are sometimes painfully slow, while iTunes and iMovie (both Carbon apps) have always been speedy even on Mac OS 9.

And then there’s iDVD. I used it for the first time last week, and it’s a great piece of software.

It took me a little while to figure this out, but the DVD Enabler that used to be distributed with OWC’s DVD-R drives does not work under Mac OS 10.2. I had to install 10.1.5 on a second drive and boot from that to use iDVD on my TiBook. But it’s well worth the trouble. iDVD is one of those rare apps that takes something that was impossible to do before (mastering DVDs for home movies and pictures on the cheap), and not only makes it possible but makes it easy. That iDVD is a Cocoa app speaks to the power in the Cocoa frameworks when used effectively.