An API (application program interface) is an interface used by a program to access services or functionality. APIs allow many programs to share basic functionality without duplicating development effort. Mac OS X provides several APIs for software development.
The UNIX API is compatible with the API used for software development on other UNIX and UNIX-like systems. OS X documentation refers to this API as the BSD API, because it follows the conventions associated with BSD UNIX more often than System V UNIX, and because it offers some BSD extensions. This chapter focuses on development using the UNIX API.
Carbon API Cocoa API
The Carbon API, which has been in use since Mac OS 8, provides compatibility with pre-UNIX Mac OS systems (OS 9 and earlier). The Cocoa API, which is based on the OpenStep API, is used for native Mac OS X development.
The UNIX API is primarily targeted at C development, although it is also accessible from C++ and Objective-C. The Carbon API is used with C and C++. The Cocoa API is used with Objective-C. Cocoa classes frequently have names starting with NS, which stands for NeXT and Sun.
The Apple developer pages (developer.apple.com) have additional information about Macintosh development and APIs. This site holds Carbon documentation (developer.apple.com/carbon), Cocoa documentation (developer.apple.com/cocoa), and UNIX documentation (developer.apple.com/unix).