Aperture 3 & Its 64-bit Cocoa Flavor


This is a followup from my quick thoughts on Aperture 3.

When I first opened Aperture 3, I noticed a couple of changes with the UI, I didn’t know what it was yet, but it was something fundamentally big.

First, the splash screen was gone. No more was the Apple Pro-apps-styled white sheet with launch status indicator, but a dialog sheet welcoming us to the Aperture Trial with ‘Authorize, ‘Buy’ and ‘Continue’ button. The buttons are slightly bigger than the ones in Aperture 2, the dialog sheet & the button renders in a different, yet familiar manner. I’ve seen it before, I’ve felt it before. And what comes next put all pieces together.

When the main UI appears, I noticed the main toolbar icons are bigger, it looks more ‘candy’ than its predecessor — less elegant, potentially more functional I thought — the candy color & the size and the spacing makes it feel less ‘Pro’, the effectiveness & usefulness of this change will have to be proven over time and I’m not ready to make any conclusion this time, and than there’s the sub-toolbars, it’s also bigger, though not much more, but it retains its predecessor’s style (spacing & ratio), which makes it less foreign & more effective.

What’s with all of that? Why did Apple go to such lengths for Aperture 3? I knew it’s a full 64-bit app, I knew its Cocoa, but then I remember a blog post I read from Daring Fireball:

In short, there are new APIs and features in Mac OS X which are only available to 64-bit apps, and because there are no 64-bit Carbon APIs, 64-bit apps implicitly means 64-bit Cocoa apps.

Being one of the latest edition of Apple’s Pro App, I never thought Aperture as a Carbon app, its UI is different than other Pro App and it’s beautifully crafted to the level of comfort I don’t even see in Mac’s native Apps. So out of curiosity, I decided to do some digging.

Following this one, I fired another tweet addressing Jason Snell & John Gruber:

@jsnell Was Aperture 3 ported from Carbon to Cocoa for full 64-bit support. Was Aperture 2 Carbon+AppKit? /@gruber’s http://bit.ly/cUZ7fz

Later, I went over to Apple Discussion Board and found a similar topic was in discussion where posted a claim that Aperture was Cocoa from day one and disputed that claim quoting Gruber’s article with this note.

A few hours later, someone responded to my claim, and (sort-of) confirming my theory. William S. wrote:

Apple shipped betas of Carbon64 prior to WWDC 07 but pulled out at the last minute and moved to Cocoa64. They officially say Carbon doesn’t support 64bit, for some operations, but it can be used (and is not considered deprecated) safely for 64bit programs. Read here: http://zathras.de/angelweb/blog-adobe-on-carbon-64-bit.htm . . . But I digress. And I think you are write. Previous version of Aperture were not true Cocoa based programs. Aperture 3 has been fully rewritten in Cocoa64 and to my knowledge, doesn’t have an ounce of carbon in it.

It’s interesting to see how Aperture has become one of the first Pro app to be 64-bit and full Cocoa, all of their Pro apps and most of their Pre-Snow Leopard native apps are also Carbon; they have rewritten Finder and all Mac OS X system apps except DVD Player, Front Row, Grapher, and iTunes have been rewritten in 64-bit.

I can’t vouch for everyone here, but my early experience with this new, Cocoa flavored Aperture 3 has been great, responsiveness has improved and everything feels natural despite the huge overhaul on the code base, it’s not an easy job maintaining the look & feel of an App after a total architectural reconstruction, and for all its worth, Apple deserves a pat on their shoulder.

There’s still no official word from Apple, nor affirmative citation if Aperture 3 was ported from a Carbon code base, to a full Cocoa code base for its 64-bit-ness, discussion is still going over at this thread, feel free to jump in.

Aperture 3 Tech Specs.