Evolution and Backward Compatibility
Carbon was designed as a cleaner implementation of the preceding Macintosh API. As originally designed, Macintosh applications access data records and global variables within the operating system. These practices make programs more compact for primitive computers with scarce memory, but hinder the addition of features to the operating system. Carbon adds (and requires) more modern methods for manipulating this information, namely by calling accessor subroutines on opaque data types. The process of changing a program's syntax to use these functions is termed Carbonization. This makes the application file incompatible with operating systems prior to Mac OS 8.1 at least, although source compatibility is often possible using C preprocessor macros.
Other changes from the pre-existing API removed features which were conceptually incompatible with Mac OS X, or simply obsolete. For example, applications could no longer install interrupt handlers or device drivers.
Carbon was introduced in incomplete form in 2000, as a shared library backward-compatible with 1997's Mac OS 8.1. However, several versions passed before it was mature enough for general use, and late versions require Mac OS 8.6. It is generally necessary to establish the minimum CarbonLib and Mac OS versions when releasing a backward-compatible Carbon application. Versions of CarbonLib are not tied to particular versions of the operating system.
Read more about this topic: Carbon (API)
Famous quotes containing the word evolution:
“The evolution of sense is, in a sense, the evolution of nonsense.”
—Vladimir Nabokov (18991977)