Cocoa: The Mac's Greatest Asset

written by: Michael Silverman

Since it's announcement, Carbon has been a source of controversy within the Macintosh community. In the event that some of you aren't familiar with Carbon; it is the set of "cleaned up" Mac OS programing interfaces that allow developers to write an application that can run on both Mac OS 9 and Mac OS X.

Carbon is a compromise, a compromise so massive that it set Mac OS X back a full two years. It was the only way to ensure that the mainstream, bread and butter Mac OS applications found their way onto OS X outside of the Classic environment.

Carbon was important for getting developers on board but that's all it's good for, In my opinion. Carbon only serves to hold the Macintosh back and everyone should be asking the "big names" for Cocoa version of their applications even though I don't have much faith that Adobe, Quark or Macromedia will be in a hurry to re-write their apps even under duress from their customers. I say this because they are in a Microsoft like position of being a pseudo standard. Pseudo standards lead to inflated prices and lack of choices and these company's influence should be minimized.

Enter Cocoa.

Cocoa is the Mac's greatest asset. Quite simply, Cocoa is the great equalizer. It gives the small development houses and individuals the power to create apps on a scale that would normally take massive amounts of programmers to code using traditional APIs such as Carbon or Win32. Not only can they create large scale apps but chances are they can create them faster than their traditional competitors.

The other great thing about Cocoa is that it can create a kind of digital harmony amongst your applications through Services. Services eliminate the need for developers to duplicate functionality by allowing an app to share features with every other Cocoa app on your computer. An example of this is Apple's Spelling Services included with OS X. A Cocoa developer doesn't need to take the time to create their own spell checker because their app can use Apple's. When Apple updates the spell checker then all Cocoa apps automatically take advantage of that update.

That was a minor example so let's speculate on something a little bigger. Let us imagine that LemkeSoft were to upgrade Graphic Converter to Cocoa and offer it's image recognition and conversion abilities as a Service. Then we'll imagine someone created a Cocoa image editing application, this image editing application could now open and save to any file format supported by Graphic Converter with no additional effort on the part of the developer. This would mean the app gets to market faster while the developer is free to focus on enhancing it's editing abilities since they don't have to worry about what formats it can read or write. It doesn't only apply to image editors, however, any app capable of using images could take advantage of the GC Service. How about a word processor that can have images in any format inserted?

One of my favorite examples would be a Service that can read/write the MS Office file formats. It would allow a user to use any word processor, spreadsheet or presenter they choose while retaining full compatibility with MS Office. You wouldn't have to resort to using messy translation applications. How about a MacLink Service?

Multiple shareware vendors can cross promote allowing each one to focus on their strengths while increasing eachother's sales. Think about this, a typical piece of shareware costs between $15 and $50 while a monolithic "swiss army knife" like Photoshop or Illustrator will run you $500. You can buy 16 $30 pieces of shareware for the price of one Photoshop and the shareware houses typically give you free upgrades.

The theory goes if you get enough small, cheap specialty apps and link them together using Services you can get equal or greater functionality to a single mega app. The advantage of the smaller apps, besides price, is that the development is decentralized so individual components get updated more frequently. You end up with a variety of applications with powerful abilities rather than one specialized app which of course means greater freedom of choice. If you don't like a particular app, switch to something else and still retain the abilities you require through Services.

I don't know about you, but I've had much better experiences submitting feedback to and getting bugs squashed by shareware developers than I have by contacting big companies. Who would you rather send your money too?

Once we're out of the clutches of glacier like mega developers and their "if it ain't broke don't fix it" philosophies on software design then the Carbon anchor can be abandoned and Apple is free to explore new options... but that's a story for another time.

Site Designed/Edited/Published by Jason Buck and Stephan Jones- Apple, Mac, Macintosh, and Mac OS X are trademarks of Apple. Any other trademarks used are property of their respective owners. Website design and layout © 2010 Jason Buck and Stephan Jones. Content © its respective author(s), published with consent from said author(s). All rights reserved. Neither all or part may be reproduced or distributed without prior consent. Contact Us.