Cocoa continues the lineage of several
software frameworks (mainly the
App Kit and
Foundation Kit) from the
NeXTSTEP and
OpenStep programming environments developed by
NeXT in the 1980s and 1990s. Apple acquired NeXT in December 1996, and subsequently went to work on the
Rhapsody operating system that was to be the direct successor of
OPENSTEP. It was to have had an emulation base for
classic Mac OS applications, named
Blue Box. The OpenStep base of libraries and binary support was termed
Yellow Box. Rhapsody evolved into Mac OS X, and the Yellow Box became Cocoa. Thus, Cocoa classes begin with the letters
NS, such as NSString or NSArray. These stand for the original proprietary term for the OpenStep framework, NeXTSTEP. Much of the work that went into developing OpenStep was applied to developing Mac OS X, Cocoa being the most visible part. However, differences exist. For example, NeXTSTEP and OpenStep used
Display PostScript for on-screen display of text and graphics, while Cocoa depends on Apple's
Quartz (which uses the
Portable Document Format (PDF) imaging model, but not its underlying technology). Cocoa also has a level of World Wide Web support, including the NSURL and
WebKit HTML classes, and others, while OpenStep had only rudimentary support for managed network connections via NSFileHandle classes and
Berkeley sockets. The API toolbox was originally called “Yellow Box” and was renamed to Cocoa - a name that had been already trademarked by Apple. Apple's
Cocoa trademark had originated as the name of a multimedia project design application for children. The name was intended to evoke "Java for kids", as it ran embedded in web pages. The original "Cocoa" program was discontinued following the return of
Steve Jobs to Apple. At the time, Java was a big focus area for the company, so “Cocoa” was used as the new name for “Yellow Box” because, in addition to the native Objective-C usage, it could also be accessed from Java via a bridging layer. Even though Apple discontinued support for the Cocoa Java bridge, the name continued and was even used for the
Cocoa Touch API. ==Memory management==