The name is also sometimes used to describe the development environment as well, consisting primarily of Project Builder and Interface Builder. This is not accurate, as other environments such as CodeWarrior[?] and a few other compilers also support development for the API. For consumers the term refers to applications written with the interface and features inherent to Cocoa applications. This usually means they are written mostly in Cocoa, but there are exceptions since Cocoa can be combined with other types of development.
Cocoa consists of a series of Objective-C libraries called frameworks. The frameworks comprise a family of objects descending from a root NSObject object that defines all the common methods. For organizational purposes they are split into two broad categories, basic data objects in Foundation, and GUI and most application related classes in AppKit. Most applications combine the two.
(The "NS" prefix, used for all framework objects, reveals Cocoa's OpenStep heritage, as does the Interface Builder file extension, .nib, which stands for NeXT Interface Builder.)
While the framework is, in general terms, still one of the most powerful available, several parts are showing their age. One is the lack of an automatic garbage collection mechanism. While the provided reference counting method works well and is easy to implement, it still requires programmer work that could easily be avoided altogether. Another issue is that Cocoa does not include a document structuring system, meaning that documents created by Cocoa applications tend to use application-specific data formats that cannot easily be exchanged with other applications. This could be corrected with the introduction (and promotion) of the Document Object Model.
Cocoa is also accessible to Java through a "bridging" mechanism of somewhat dubious quality. At one time it appeared that Apple was interested in promoting Cocoa primarily under Java, but this has since "cooled off".
See also: Carbon (Mac OS X), Classic (Mac OS X), GNUstep, Widget toolkit
Search Encyclopedia
|
Featured Article
|