|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.