
When it comes to software on the Mac platform it's a mixed bag. I don't mean like on Windows, where the bag is full of snakes, scorpions, rusty blades, and the occasional bit of peach. Software on the Mac has been in flux for a decade. When Apple bought
NeXT, most of us figured
Copland was dead in the water (and it was). Personally, I wish we'd seen
OpenDoc come to fruition, but that comes from years of dealing with bloatware. OS X pushed the "Classic" Mac OS further and further into the shadows, until, with the advent of Intel Macs, it's pretty much dying off... Read the fine print on these
Leopard features for developers, and you'll realize how dead "Classic" really is. Perhaps we should call it "Relic."
Now ask anyone (well,
almost anyone) who's coded Cocoa apps and they'll tell you it's lovely. Shoot, Apple's so proud of the
frameworks they provide for devs, they even touted a new one,
Core Animation, as one of the 10 things coming in Leopard. But we're still living a dual-existence (triple or quadruple or more, if you get technical) in that you have Cocoa apps, and you have the non-Cocoa apps. Perhaps you know about Java, which is what Limewire uses. Or X11's ability to run apps like GIMP. Both of those have their quirks. Java apps can be all over the place, and X11 doesn't integrate the UI of OSX, among other issues. Carbon is a mix of old-skool API's (implemented in good ol' C if I recall), and permeates Mac apps like Office and Photoshop, where a teardown/rebuild would be too unwieldy. There's also the fact that key apps like Finder and QuickTime are Carbon enough to still have some legacy code from way back when, which might account for some of
their quirks too... No holy wars about Cocoa vs. Carbon, OK? I'm with
David Weiss on this one. So you have Cocoa, Carbon and
everything else.
Getting granular for a moment, look at a tale of two browsers: Safari vs. Firefox. Safari is a Cocoa app, and it is tightly integrated with OS X tools. It maintains the ability to look up words in the Dictionary app with a right-click, and access the OS X Keychain. Firefox is not a (full) Cocoa app, and you can't niftily use a keyboard shortcut to look up a word, nor will it store passwords in Keychain. I've learned to use this "wall" to my advantage. Since the passwords are stored differently, I can automatically log in to systems (like gmail) using two accounts simultaneously. I use my business gmail on one browser, and personal on the other. Unfortunately, you're limited to 3, as all Firefox-based browsers will share their version of Keychain, and all Webkit-derived browsers use Keychain. I say three, because Opera stands alone (and doesn't always play nice with Gmail). There's the conundrum: to the average user, they don't care, but when little non-Cocoa quirks appear, they scratch their heads and wonder why the Mac doesn't just "do stuff" one standard way.
Keep reading for my take on shareware, freeware, and malware in OS X...