iThings Considered

Carbon, Cocoa, or Classic?

Jake Sargent - 2001.03.30

If you only heard one thing about Mac OS X in the past year, it would be Aqua. But the second thing you would learn about is the structure of Mac OS X and the new application environments that come with it. I'm referring to Cocoa, Carbon, and Classic (although there's nothing new in Classic). Each type of application programmer interface (API) is designed for a specific purpose.


Classic is really just Mac OS 9.1 running within OS X. It is good for using applications that are made for previous Mac OS versions. The majority of companies that develop applications for the Mac have committed to Mac OS X and will most likely not continue to develop applications that will not run natively under OS X. The most popular of these companies include Microsoft, Macromedia, Adobe, and Corel.


Most companies that are porting their existing programs to Mac OS X are using Carbon, which allows programs to run under OS X and the traditional Mac OS.

Carbon is efficient, because programmers only have to rewrite 10-20% of their code to make an old program run natively in OS X. This percentage varies depending on the application and how much of the original code requires system interaction. For example, many cross-platform programs and games are designed to run on both Mac OS and Windows, and therefor do not utilize much OS-specific code. These applications are easier to carbonize. Carbon is easier to learn than Cocoa, because it is very similar to C and will likely be the more popular way of developing applications for Mac OS X.


Cocoa is more powerful than Carbon and takes better advantage of what Mac OS X has to offer. With Cocoa, developers can write applications in both Java and Objective-C. At the moment, there are more applications written in Carbon than Cocoa, but it is likely that as OS X becomes the standard Mac operating system, more programs will be created using this API. Applications that are currently written in Cocoa include the majority of programs from the Omni Group, a popular instant messenger called Fire, and the recently announced QuicKeys X.

Cocoa gets the prize for the most versatile and powerful API. Carbon comes in second as a quick and easy way for companies to port their programs to Mac OS X. Classic comes in last and should only be used by those that don't expect to sell any copies of their application.

Apple has done a good job creating an easy way for companies to port their existing software to Mac OS X using Carbon. Apple has also created Cocoa for those who want to take full advantage of all that Mac OS X has to offer. For developers who are too old-fashioned to carbonize their applications, there is Classic - which is a nuisance to run, but it works all the same.

I look at the transition from Classic to Cocoa (or Carbon) the same way I looked at the transition from SCSI to USB a few years back: It's something that has to be done, and we will all be thankful for it a few months down the road.

If you're interested in learning more about Carbon or Cocoa, I suggest the following two books, which will be available in May and are written by insiders at Apple: Learning Carbon and Learning Cocoa.

About LEM Support Usage Privacy Contact

Custom Search

Follow Low End Mac on Twitter
Join Low End Mac on Facebook

Favorite Sites

Cult of Mac
Shrine of Apple
The Mac Observer
Accelerate Your Mac
The Vintage Mac Museum
Deal Brothers
Mac Driver Museum
JAG's House
System 6 Heaven
System 7 Today
the pickle's Low-End Mac FAQ

The iTunes Store
PC Connection Express
Macgo Blu-ray Player
Parallels Desktop for Mac

Low End Mac's store


Open Link