The preceding decade introduced the world to the Cocoa software development frameworks. The year 2000 brought the first public release of Mac OS X Beta including the Aqua user interface and Cocoa. The Beta was quickly followed by Mac OS X 10.0 in March 2001. In part, Cocoa is and was "just" the next logical evolution of the mature technology called NeXSTEP in 1988, OPENSTEP in 1993, and Yellow Box in 1998.
Throughout the course of a decade, Cocoa emerged as the secret sauce for all the best Mac, iPod Touch, and iPhone software, but it wasn't always clear that would happen. The following lists enumerate the exalted highs and ignominious lows of a decade with Cocoa.
- 2000: High profile attentionSteve Jobs demos Cocoa applications from small independent developers at the World Wide Developer Conference (WWDC) keynote, giving the big players notice that they can't afford to ignore the technology.
- 2007: Core AnimationApple eases implementation of user interfaces that employ often subtle and sometimes astounding animations using Cocoa.
- 2000: NSDocument and friendsApple publicly releases the standard Cocoa infrastructure for multi-document applications, which ends the days of when every developer rolled his or her own.
- 2005: QTKitApple provides Cocoa-style access to modern QuickTime media, playback, and editing capabilities. QTKit finally resurrects the NexTime capabilities abandoned by Apple prior to 2000.
- 2007: RubyCocoa, PyObjC, and ScriptingBridgeThese additions to Cocoa open the technology to a wide range of programming languages and scripting environments, including the immensely popular Ruby and Python languages.
- 2005: Quartz Composer and Core ImageHardware-accelerated imaging, animation, video, and web presentation technologies provide simple but powerful Cocoa interfaces that show off the amazing media technologies beneath the surface of Mac OS X.
- 2007: Automatic memory garbage collectionThis technology was added to the Objective-C language runtime used by Cocoa, and reduces the burden on programmers to correctly manage memory in Cocoa applications. This technology appeals to programmers familiar with Java, C#, Smalltalk, LISP, and other languages that free programmers from worrying about memory. More importantly, automatic memory garbage collection has the potential to reduce or avoid certain causes of application crashes and extend the reputation that Cocoa applications have earned for being robust.
- 2003: NSController and friendsApple provides classes to flesh out the "Controller" subsystem of the Model-View-Controller design employed by most Cocoa applications. This technology simplifies application design. Related Cocoa bindings reduce the amount of ugly "glue" code in many applications by automatically synchronizing Views and Models.
- 2005: Core DataApple resurrects some of the nicest features from discontinued database technologies and provides automated and flexible storage (persistence) for Cocoa objects.
- 2008: iPhone Software Development Kit (SDK)It's Cocoa Touch, and inspires a new generation of developers.
Honorable Mention: Cocoa DocumentationThe available documentation as been improved from barely adequate in 2000 to best in the industry by 2010.