Cocoa is Apple Computer's native object-oriented application programming environment for the Mac OS X operating system. It is one of five major APIs available for Mac OS X; the others are Carbon, 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.)
Cocoa applications are typically developed using the development tools provided by Apple, specifically Xcode (formerly Project Builder) and Interface Builder, using the Objective-C language. However, the Cocoa programming environment can be accessed using other tools, such as Python, with the aid of a bridging mechanism such as PyObjC. It is also possible to write Objective-C Cocoa programs in a simple text editor and build it manually with GCC or even GNUstep's makefile scripts.
For end-users, Cocoa applications are considered to be those written using the Cocoa programming environment. Such applications usually have a distinctive feel, since the Cocoa programming environment automates many aspects of an application to comply with Apple's Human Interface Guidelines.
Cocoa is derived from NextStep, the Objective-C framework used by NeXT for their workstations. Apple adopted the framework as their main application framework when they acquired NeXT. Both Cocoa and GNUstep were derived from NextStep, which is where the "NS*" naming convention comes from.