If you’re old enough to remember back to a time before Apple’s Swift programming language existed, before watchOS and tvOS extensions, even before iMessage Apps and Stickers Packs – you might’ve heard of a language called ‘Objective C’. Anyone who has spent time wrangling square brackets ‘]]’ and ending each line with semi-colons ‘;;;’ will know that just about every object in the Objective C Foundation framework is prefixed with the two letters ’NS’.
What is NS? Why is it used? How did it get there? Who knows…
Wanting answers, I tasked myself with the challenge and did some thorough digging deep down into the aged, whethered and ancient depths of the Apple software development history books so that you didn’t have to. I followed some shady looking yet well known and influential software developers down dark alleyways, listened to their war stories and asked the tough questions. If walls could talk, the walls of the Apple developer community would have a lot of scary stories to share, of Manual Reference Counting pain, of Project Builder suffering and preemptive multitasking.
What is NeXTSTEP?
Steve Jobs left Apple on September 1985 and went on to found NeXT, Inc. unveiling its first NeXT Computer running the NeXTSTEP Operating System in 1988. As the first computer company to ship a built-in 256 MB (256 entire megabytes) magneto-optical storage medium, NeXT rivalled even the best offerings of its competitors. It packaged a high-resolution display, Ethernet, CD-quality sound and multimedia email into a one-foot by one-foot perfect edge-to-edge black magnesium cube.
In 1990 the first World Wide Web server and client in the CERN was setup on a NeXTStep system.
Apple Computer bought NeXT in 1996, which led Steve Jobs eventually back to the role as CEO of the company. NeXTSTEP went on to live as the heart of Apple’s Mac OS X operating system.
Who is WebObjects?
NeXT Inc developed another software product known as WebObjects used for the construction of websites. WebObjects is a Java web application server and server-based web application framework. It is known for its Object Orientation, Database connectivity, and prototyping tools. First publicly demonstrated at the Object World conference in 1995 and released to the public in 1996. Its success can be traced back to the time and cost benefits of rapid, object-oriented development in the early days of ecommerce, with clients including Disney, Dell Computer, BBC News, Motorola, DreamWorks SKG and GE Capital.
Currently Apple remains the biggest client of the software, using the software to power parts of its online Apple Store, iTunes Store, iTunes Connect and Bug Reporter.
You mean it doesn’t fit in my pocket?
Designed by Frog, the same company that designed the Apple IIc, the NeXT computer case was incredibly unique for its time. Eschewing a standard beige desktop computer case, NeXT created a 12” magnesium cube. The company built a completely automated factory in order to produce the computer case called the NeXTcube and first presented the Cube to a packed audience in New York city in October of 1988. Cubes running a beta version of NeXT Step (0.9) shipped to a limited number of Universities and publishers in 1989.
Each NeXTcube bundled with a 17” megapixel grayscale (I don’t know what grayscale actually means to be honest), a 400 dpi laser printer and built-in, yes built in, ethernet networking. It also bundled in the complete works of Shakespeare, an email client and the complete Oxford English Dictionary.
With an end to have an Object Oriented operating system, an appropriate Object Oriented programming language was required. NeXT decided to use Objective-C, developed in the early eighties by Brad Cox at Stepstone, one of the most respected OO languages available at the time. Objective C had low overhead, unlike Ada or BASIC, it also had syntax similar to C, making it easier for most programmers to learn to use.
In addition to using the Objective-C language, Apple developed a collection of objects used to build software. Many of these were collected into a framework known as ‘AppKit’, which Apple adapted into Cocoa for OS X and then later into Cocoa Touch for iOS. Cocoa and Cocoa Touch include all the basic building blocks and functionality necessary for most modern software, but roots in NeXTSTEP history still remain (for now) in class names such as NSArray, which employ the ’NS’ prefix.
Swift is an amazing language for building modern software, but it’s important to step back from your maps, your flatMaps, your protocols, your extensions and your implicitly unwrapped optionals to pay homage to the struggles, the pain and the suffering of those before us. The founding fathers of the ecosystem, no matter how grumpy or facetious they get on twitter. So with that, I encourage you to attend your local Cocoaheads, or related Apple developer meetup, look for the grumpy guys and buy them a beer. Ask them about their past.
Don’t hate me Kev.
(Oh, I’m going to hell for this)