This article is more than 1 year old
Apple Mac OS X: A decade of Ten
How about them Apples?
Cocoa and Carbon
If Mac OS X wouldn't then be a break with the past for users, it certainly would for developers. Well, at the start, anyway. It was initially envisaged that software writers would begin using OpenStep's object-oriented application programming interface (API) - the methods by which application communicates with operating system - which became known as Cocoa in the Rhapsody era.
Cocoa uses Objective C, a version of the C programming language tweaked to support the modular object-oriented (OO) programming. Many Mac OS programmers were already using C++ to write OO apps in C, so that wasn't a huge leap. Learning an entirely new API, however, was another matter, and a fair few developers rebelled, among them some majors, including Adobe.
The result was a compromise: Rhapsody would incorporate a "legacy" API, dubbed Carbon, to allow coders to migirate their existing apps more quickly, though with a view to migrating to Cocoa in due course. Apple would later add a Java API layer to OS X and, eventually, allow apps to be coded in Mac OS' own scripting language, AppleScript.
Ironically, Mac OS most central user-facing feature, the Finder, implemented in OS X as a standalone application, was initally released as a Carbon-coded program. Initially, a single-thread app, Finder's use of Carbon was blamed by outsiders for its seeming poor performance. It was a frequent displayer of Aqua's 'I'm busy doing something' pointer icon, the so-called "spinning beachball of death".

Finder... but not as Mac OS 9 users know it
Finder wasn't re-written as a Cocoa application until 2009's Snow Leopard update, OS X 10.6.