Mac Cocoa API

This report is meant to be a summary and review of one of the main facets and important parts of what is commonly referred to as the most advanced operating system in the world, that being Mac Operating System version 10, or Max OS X for short. Specifically, this report shall focus on what is known as Cocoa. In a nutshell, Cocoa is the application programming interface, commonly referred to as an API, that is built in to Mac OS X. If one knows about the history of Apple, they would know that Steve Jobs was a huge part of how Max OS X and the Cocoa API came to be in the first place and a lot of this pathway ended up not involving Apple directly. While there are other options when it comes to programming in the Apple operating system, it is Cocoa that should be used for natively programmed applications in Mac OS X.

Don't use plagiarized sources. Get Your Custom Essay on
Programming with Cocoa in Max OS Journal
Just from $13/Page
Order Essay


As was alluded to in the introduction to this report, Steve Jobs did not always have a rosy history with Apple. Of course, Apple was founded by Steve Jobs and Steve Wozniak. Subsequent to that, an experienced executive by the name of John Sculley was hired to head the company and there was a lot of growth. However, there came a point where Sculley and Jobs actively butted heads and this culminated with Jobs departing the company and forming his own. That company came to be known as NeXT Computers. Upon formation of that company, Jobs hired a number of very good engineers and they ended up developing a number of things. This included a computer, a printer, a factory and an overall set of development tools. These items were all very much ahead of the proverbial technology and computer curve at the time. This is perhaps why the company’s sales efforts were a flop and the company shifted to a software-only outfit. The prior-mentioned operating system and the developing tools came to be known as NeXTSTEP. While it was by no means a hit with the “average” consumer, the OS was very popular with the scientific and technical communities. Investment banks and intelligence agencies were also rabid fans of the product (Hillegass).

The most important facet of that operating system was its core properties. Rather than using a concealed and secret operating system foundation, the NeXTSTEP operating system and its associated tools were instead based on a Unix core. Of course, Unix is open source and it is used prolifically around the information technology community and has been for years. There are multiple types of Unix (and its cousin Linux), as many people know. The particular “flavor” used by NeXTSTEP was the BSD Unix core. Unix was chosen for several reasons. First, it was open-source and this made it easier for outside entities to program for the operating system. Second, the Unix core (regardless of iteration) is much more stable than Windows XP or any other version. Thirdly, the networking capabilities of Unix are much better than other operating systems (Hillegass).

It was mentioned earlier that Steve Jobs had left Apple to do his own company. He later came back and Apple and NeXT were merged into one company. This proved to be pivotal because the NeXTSTEP OS became what is now known as Apple OS X. Before that, though, Apple was not unlike Microsoft in that they did not reveal its personal secrets and source code. However, they did eagerly release and share the Unix portions of the operating system. This release came to be known as Darwin. The operating system as a whole came with a set of libraries and programming tools that allowed programmers to deal with the associated window manager in an efficient and results-oriented way. These libraries came to be called frameworks. This collection of tools eventually came to be called OpenStep. However, this same set of tools and libraries eventually came to be known as Cocoa, the current Max OS X API that everyone knows and loves. Overall, programming in the Cocoa environment has been done with a computer programming language that is known as Objective-C. Many people might be familiar with the other computer language that is known as C++ but Objective-C is notably different. Both C++ and Objective-C are object-oriented, which runs counter to the older and more archaic programming languages that exist out there. However, C++ and Objective-C are different in that the latter can be both weakly input but will still be very powerful. Put another way, programmers that are dealing with Objective-C can write very sloppy programming code yet the program will still work despite this shoddy work. Beyond that, Objective-C is considered by many to be very easy to learn and use as opposed to the more dated programming languages that have much sharper learning curves (Hillegass).

Regardless of its name over the years, Cocoa has been a smash-hit when it comes to the people that use it. One reason is that experimentation is extremely easy to do when it comes to creating and forming whatever is being slapped together programming-wise. One programmer that used it was able to create both a web browser and a web server using the framework. People that are in the business of analyzing securities found it easy to work with as well despite the fact that they had high demands of it due to wanting to create and change financial models and such. As mentioned before, the intelligence community in the United States government were avid fans of the NeXTSTEP line of software products. While they are obviously less than open and clear about what they have used it for, they apparently were snapping up copies of the operating system and what is now known as Cocoa by the handful. The Cocoa framework was already so popular that the framework was ported and shifted over to Solaris and Windows NT. As one can figure out, the Cocoa programming framework did very well regardless of the manufacturer of the computer or the processor that was in it. Just some of the processor brands that it worked well on included Intel, Motorola, the Hewlett Packard PA-RISC and the SPARC chips. Because of the exterior creation of NeXTSTEP and the later integration and acquisition by Apple when Jobs returned, Apple actually did not use the framework on a Mac machine until Max OS X Server in 1999. That operating system was code-named Rhapsody. Apple actually tried to develop their own “flavor” and version of NeXTSTEP, called Project Copland, but it failed miserable. Apple acquiesced and acquired NeXTSTEP in 1996 and this brought NeXTSTEP into the Mac platform and Steve Jobs back into the fold. As noted already, NeXTSTEP and the Cocoa API that comes with it became Mac OS X (Hillegass).

While Cocoa has been and remains the standard bearer when it comes to native OS X programming, there are possible and potential replacements on the horizon. While it may come off as sacrilege to suggest that Cocoa would become obsolete, the idea is not completely without merit or precedent. First of all, there is a set of libraries in the past of Apple that has done precisely that. It was known as Carbon. Second of all, there are new methods and frameworks on the horizon that are seeking to supplant Cocoa as the gold standard Max OS X programming framework. One such framework is known as Swift. While there is no shortage of programmers that will tell tales of how great Cocoa is or has been, there are some that suggest that newer and fresher frameworks like Swift should get their chance to become the new standard. Swift is touted as that new standard in that it allows for safer and more performant coding in Max OS X. However, many of these same advocates point out that much of what makes Swift glisten does not trickle all the way through to end-users and typical or conventional application usage. While Swift may not be the successor to Cocoa, it is certain that some framework or operating system in general will replace Max OS X and/or Cocoa eventually, respectively (Thompson).

While one might think that Cocoa does not have uses outside of the Mac OS X computers, that is not true. Indeed, all Apple products are built on the same overall framework and thus Cocoa can be used to create and tweak applications for Mac OS X, iPhones and iPads. Even the iPod Touch and its interface is built on the Cocoa framework. This is to be expected to some degree given that all of the products in question are meant to work together seamlessly and all of the products are made by Apple. As noted before, the programming language use to do all of this is Objective-C. Two of the commonly used and harnessed development tools in the Cocoa framework are Xcode and Interface Builder. These and other Cocoa tools are used to develop Cocoa-created applications, manage user interaction, create user interfaces (UI’s) in general and beyond. Also as noted before, the language and tools are very intuitive and even people that are novices to programming can find their way quite easily when working with the Cocoa API and Mac OS X in general. Another important aspect of the Cocoa/Objective-C framework is the presence of the Model-View-Controller, or MVC. This is a tool that is used to share and siphon data between the different objects in an application. Irrespective of what precisely is being created and built by Cocoa, there should generally always be a way (if not more than one way) to construct the desired attributes and manifestation and interface. Even people that want views or interfaces that are complete customized and created rather than being canned or pre-created can find a boon of tools and tricks to use in Cocoa. A primary tool that is used when it comes to customized views and app usage methods is known as AppKit (Stevenson).


In addition to all of the above, the Cocoa user and programming community is extremely active and robust and there is no shortage of places and voices to find advice from should it be needed by a programmer that has hit a proverbial wall in some way. However, the likelihood of this happening in general is seemingly so much lower than might be expected given the ease of learning and using the Cocoa framework.

Works Cited

Hillegass, Aaron. “What Is Cocoa? A Brief History of Cocoa..” Java Samples. n.p., 2016. Web. 29 June 2016.

Stevenson, Scott. Cocoa & Objective-C. Sebastopol, Calif.: O’Reilly, 2010. Print.

Thompson, Matt. “The Death of Cocoa.” n.p., 2014. Web. 29 June 2016.