API Description Preferred Programming Language Pros Cons
Carbon Interfaces used for Mac OS 8/9 applications. OO interfaces/classes for Mac OS X C, with C++ supported Familiar APIs, allows reuse of Mac application code or program code written on other procedural systems Not every API call available, older Carbon apps must be converted to Mach-O format
Cocoa Traces its roots to the NeXTSTEP framework Objective-C, Objective-C++, although C and C++ can be integrated into code NeXTSTEP framework field-tested for over a decade offers a rich set of services You're starting from scratch adapting code to this API
Java Uses J2SE 1.4.2 Java Can reuse Java programs written on other platforms with little modification Won't have full access to all of the OS features as do the other APIs, performance may be an issue
BSD UNIX Based on the System V IA-32 Application Binary Interface (ABI) C Good for writing CLI tools or low-level services such as daemons or root processes Mac version of IA-32 ABI still in preliminary form, and there are some minor differences in it from the Intel version

Table 1: Summary of Mac OS X APIs.

Back to Article