From collectibles to cars, buy and sell all kinds of items on eBay
home | pay | site map
Shop for itemsSell your itemTrack your eBay activitiesLearn, connect, and stay informed-for business and for funGet help, find answers and contact Customer SupportAdvanced Search
Home > Listing Index > Games > Carbon (API)

Games - Carbon


Carbon is Apple Computer
's procedural API for the Macintosh
operating system, which permits a good degree of forward and backward compatibility between source code written to run on the outdated Mac OS 9
, and the newer Mac OS X
. It is one of five major APIs available for Mac OS X; the others are Cocoa
, Toolbox
(for the Classic
environment), POSIX (for the BSD environment), and Java. (Environments such as Perl
and Python are considered minor environments because they are not generally used for full-fledged application programming).

The Carbon APIs are published and accessed in the form of C header files and a dynamically linkable library (called CarbonLib on Mac OS). The implementation of the APIs is different in the two systems, but this difference is shielded from the executable. This permits code that conforms to the Carbon APIs to run unchanged and natively on both operating systems.

Without Carbon, applications written solely using the older APIs can only be run in the Classic Environment on Mac OS X.

The Carbon APIs have been designed to include as many of the older Toolbox
APIs as possible, to permit easy porting of most legacy code to Mac OS X. Such porting is known in Mac programming parlance as Carbonization. Carbon also adds new APIs to make up some of the deficiencies in the older APIs. For example, in the classic APIs, many data structures were exposed and code was expected to manipulate or query fields within these structures directly. In Carbon, most such structures are now fully opaque, and so new APIs have been added to allow the same queries and manipulations to be done. Such changes require legacy source code to be slightly modified, but the result is usually cleaner and less error-prone code. Carbon does not include some of the older APIs that deal with now-obsolescent technology, such as the Palette Manager. On OS X, it also includes additional APIs for new technologies which were never part of the original Mac OS — applications requiring these cannot run on the older Mac OS.

Carbon is often seen as a transitional or legacy technology, but in fact it is unlikely that large legacy codebases (eg, Adobe Photoshop, etc) ever will be completely rewritten for Mac OS X, and so it will necessarily remain a core part of the OS X operating system indefinitely. In addition, Cocoa
relies on Carbon for some of its lower level services, and some services that don't fit the Cocoa design approach only have Carbon APIs. What is likely is that software vendors will quickly drop support for running under Mac OS 9
.x using Carbon, since that operating system has already been officially retired by Apple. This is already happening — there are numerous applications which, while written using the Carbon APIs, will only run on OS X. Examples include iTunes 3.x and later, and Microsoft
Office v.X.

Carbon is lower level and accessible by a range of programming languages, it is also closer in style to the Win32 APIs of Windows
, and therefore may be a better choice for cross-platform development. In fact, the Carbon project at Apple was developed from the Quicktime for Windows codebase which has included a substantial subset of the classic Mac OS APIs since the early 1990s. QuickTime was one of the first Apple software components ported to the Rhapsody
operating system as it was designed to be portable. Its Mac OS emulation code was then generalized and expanded to form the first release of Carbon.

Carbon is often confused and/or compared with Cocoa
, but the two are complementary and are solving different problems. In general, Carbon is the lower level APIs, whereas Cocoa is a higher level application framework. While a software project may exclusively use one or the other, in practice it is often necessary to use elements of both. Carbon is more versatile in that it may be accessed using C, C++, Pascal, Ada
, or any other language with suitable interface headers, whereas Cocoa exclusively uses Objective-C and Java. A higher level approach may be taken with Carbon by using an application framework built on it, for example MacApp
, Metrowerks Powerplant or MacZoop
.

[ Visit the complete Wikipedia entry for Carbon (API) ]


Searches on eBay

Related searches on eBay

Some related entries: Scrooge McDuck | Daryl Brunt | Avatar | Multicart | MorphOS | James Cash, Jr. | Gnome | Henry Atkins | Raven Guard | Parchís | List of OverPower card sets

eBay Pulse | eBay Reviews | eBay Stores | Half.com | Kijiji | PayPal | Popular Searches | ProStores | Rent.com | Shopping.com
Australia | Austria | Belgium | China | France | Germany | India | Italy | Spain | United Kingdom

About eBay | Announcements | Security Center | Policies | Site Map | Help