|Home » Learning Curve
Cocoa & OS X
From the preface to Cocoa Programming, Anguish Buck Yacktman, SAMS Publishing. All rights reserved.
Cocoa is the result of continuous evolution from the software development environment of NeXTSTEP which was first released to the public in 1988. Many of the common design patterns were first recognised in NeXTSTEP.
Cocoa is distinguished from other object oriented development environments in several ways:
- Cocoa is mature, consistent, and broad.
- Cocoa is based on a cross-platform specification and has evolved from a cross-platform implementation.
- Cocoa is extraordinarily extensible, flexible, and dynamic in part because of Objective-C, the language used to implement it.
Developers enjoy huge productivity improvements by using Cocoa instead of other technologies. Several ground breaking applications were originally developed with NeXTSTEP, including Apple's own Interface Builder, Lotus Improv, and the first World Wide Web browser.
The initial implementations of the famous games Doom and Quake and the custom development tools for the games were written using the predecessors to Cocoa.
Developers such as Tim Berners-Lee, who invented the World Wide Web, claim that they could not have created cutting edge applications as easily if they had to use other technologies. The obstacles to overcome in other environments would have hampered the innovations.
Apple support three principal software development environments for producing OS X applications: Cocoa, Java, and Carbon.
Cocoa is the most mature development environment for OS X as well as the most productive technology for implementing many types of applications. The cheapest, fastest, and most bug-free lines of code in any application are the lines a programmer didn't have to write. Cocoa's pervasive use - and reuse - of objects dramatically reduces the number of lines of code in applications.
A simple comparison is the TextEdit application shipped with OS X versus the SimpleText Carbon example.
TextEdit is a Cocoa application implemented in 1354 lines of code whereas SimpleText is implemented in 5231 lines of code.
TextEdit has many more features and fewer limitations than SimpleText, yet TextEdit requires approximately 1/4 the number of lines of code.
Cocoa programmers often claim a 5-1 productivity advantage over alternative technologies, and the TextEdit versus SimpleText comparison indicates an even greater advantage.
Cocoa is the most flexible software development technology for OS X. Cocoa is written in Objective-C, and that provides several advantages. Objective-C is a small superset of ANSI C. Objective-C programs can seamlessly use all the C libraries available in OS X.
Cocoa is the most extensible software development technology for OS X. It is even possible to change the user interface of a Cocoa application without access to the application's source code.
Java is one of the most popular programming languages used today. Its designers credit Objective-C as one of the influences that led to its creation and design.
Carbon consists primarily of a subset of the traditional procedural application programming interfaces (APIs) used to program Mac computers. Apple updated and in some cases enhanced the libraries used to program Macs before OS X. Applications written using Carbon work on MacOS 8 or MacOS 9 with compatibility libraries installed. In many cases programmers can easily update old applications written for the Mac to work with Carbon on OS X.
Apple is providing links to these applications as a courtesy, and makes no representations regarding the applications or any information related thereto. Any questions, complaints or claims regarding the applications must be directed to the appropriate software vendor.