Crashed Pips - Computers, politics, emetic trash

Saturday, June 14, 2008

NeXTStep: The Operating System that Time Forgot

Filed under: Apple, Software, UNIX — Tags: , , , , , — Jonathan Rothwell @ 13:29

Occasionally, one will run into a nerd who’s sufficiently old to remember logging into Usenet, probably from the the Bourne shell on their (massive) UNIX System V workstation. A good indication of whether someone is old enough to remember this is whether or not said nerd has a beard that is at least two inches long and smells strongly of alcohol.

In other cases, you’ll come across the ‘1990s personified’ nerd. He or she will almost always wear a lab coat, glasses, and witnessed the creation of the ‘first post’ phenomenon on Slashdot. He/she is less likely to have a beard.

With this in mind, let me introduce you to Dr. Blockbuster. He’s the nerd of the ‘1990s personified’ form , and fondly recalls the days, in the 1980s, when he, as a post-graduate student at Stanford, would go up to his Sun 3/50 workstation, wait for it to creak into life, and then fire up vi and start coding.

However, consider this. On a cold day in December 1992, he finds the Sun 3/50 will no longer start. In fact, it has coughed, spluttered, and panicked its last. Shock horror! This means Dr. Blockbuster will have to buy a new workstation to do his university dissertations, coding projects and Unix sysadmin procastination.

Not to worry! Dr. Blockbuster’s elderly parents, being the kind people they are, have bought him a new toy. It’s a NeXTstation Turbo Color, created by NeXT, the company Steve Jobs set up after being ‘fired’ from Apple. It’s got 2gB of disk space, 32mB of RAM, a 4096-colour 17-inch display, and a 2.88mB floppy drive. Quite an impressive specification for his day.

However, the most important part of the NeXTstation was its default operating system. It was called NeXTStep, and was perhaps the most important operating system in modern history.

The reason NeXTStep was so important was because of what it managed to do - something that was a completely laughable concept at its time. NeXTStep was Unix. But it wasn’t the kind of Unix Dr. Blockbuster was used to, where one would open up xterm in twm and throw in cat /home/sbbster/libman.c.

NeXTStep’s greatest innovation was to show that an intuitive user interface could work beautifully on Unix, and that it was possible for a consumer-oriented desktop OS to have a core that was traditionally limited to very top-end workstations and servers.

Let’s go back to our fictional scenario. Dr. Blockbuster unboxes his new NeXTstation, and boots the beast for the first time. He selects his language and keyboard layout, enters a username and password, connects it up to the university network, and…

there’s no terminal. There is, instead, something that makes our hero groan. “Oh, God. Another window manager.”

It’s worth putting in context that most Unix window managers of the 1980s were a headache to use. Uwm, the default window manager for X10, didn’t even have titlebars on its windows. Twm was slightly better, but still completely baffling for a standard computer luser. And, worst of all, there was no continuity between these window managers - you either learned a whole new set of key combinations (which would require a combination of opening up the man page and sniffing your way around) or editing the source code to use your old key combos.

However, Dr. Blockbuster decides to spend a little while noodling around NeXTStep before resorting to his trusty System V disks. (Little does he know that System V doesn’t really like NeXT computers.) And - to his astonishment - he works out how to use NeXTStep within ten minutes.

NeXTStep was incredibly intuitive for its time - and even today’s end users, used to start menus, Internet Explorer, and social networks like Spazbook and MyFace, will take less than half an hour to work out how to use NeXTStep. It popularised many of the user interface features and pradigms that have become common today.

Firstly, there was no ‘desktop folder’. You couldn’t stick icons on the desktop, in a similar way to how Windows worked pre-Windows 95. This practice was common among window managers of the 1980s. In a similar vein, one could access the main menu by right-clicking on the Desktop. This was also common practice, so Dr. Blockbuster can work his way around quite easily. It’s quite intuitive.

Then come the more interesting parts of NeXTStep. Its user interface was very aesthetically pleasing for the early 1990s: this is made even more astonishing when you discover that that row of icons on the right is… shock horror… the Dock! Gasp! In the early 1990s? That’s like seeing satellite dishes outside homes in the 1970s (although Life on Mars pretty much took care of that).

The concept of a Dock was very avant-garde for its time. ArthurOS had something similar, the Iconbar, but the Dock was the first truly successful attempt at implementing this organisation method. And it had been done on an OS that was traditionally ‘nerdy’ and difficult to use.

It becomes even more surprising when you notice that windows minimise (or iconify) with a flipping animation - and that the contents of the window follow the frame around when the window is moved. This only appeared in Windows 2000 on Windows systems, and around the same time on Macs (but we’ll come to that later).

Dr. Blockbuster soon found it was easy enough, should he need it, to drop to a UNIX terminal if he needed: all he needed to do was launch Terminal.app. He could even dock the application if he needed to. He e-mail his parents to say thanks in Mail.app, and it was easy enough to start coding instantly by just running vi from the terminal, just like he used to.

It gets better. Instead of the ugly Visual C++ and Visual BASIC languages Microsoft would trumpet in following years, NeXTStep used Objective-C as its native programming language. It also included a WYSIWYG project builder and interface builder, which meant that it took less than ten minutes to build a simple front-end to a SQL database, without even writing a single line of code. Indeed, we have NeXTStep’s excellent programming environment to thank for catalysing Tim Berners-Lee’s development of WorldWideWeb, the first Internet browser/editor (leaving our site).

NeXTStep was ahead of its time. It originally ran only on NeXT’s own computers originally, but was later ported to run on x86, PA-RISC and SPARC architectures. The NeXTstation and NeXTcube were discontinued in 1993, but NeXTStep continued as NeXT’s sole project: in 1995, the last stable release under the NeXTStep name, 3.3, was released. It was, by far, the most popular.

But NeXTStep is far from dead. Indeed, we owe it a lot for proving that Unix could be a user-friendly OS - but it remains, in essence, in one of today’s most popular operating systems.

In 1997, Apple Computer, Inc. bought out NeXT, bringing Steve Jobs back to the company he’d left twelve years ago. With a more benevolent management style and the experience he’d gained from having children and from running NeXT (and his ‘hobby’, Pixar) Jobs guided Apple into continuing the development of NeXTStep. The project to rebuild the Mac OS on the NeXTStep core was called ‘Raphsody’. Apple had tried to create a mass market for Unix in the 1990s with A/UX, but failed magnificently. Now, between 1996 and 1998, Apple continued to work on NeXTStep, rewriting the Mac OS to sit on top of NeXTStep’s BSD core (which would later be called Darwin) and, by 1999, NeXTStep had been turned into the first version of Mac OS X - Mac OS X Server 1.0 (leaving our site).

Server 1.0 is a perfect snapshot of the mutation between NeXTStep and Mac OS X.  Whilst the Platinum interface from Mac OS 9 had been ported over, and the Dock had mysteriously reappeared, most of the applications were NeXTStep’s. NeXTStep’s Workspace Manager covered for the Finder, and, for the first time in the Mac OS’s history, one could drop to a terminal. Yes, a terminal!

Finally, the evolution completed in 2001. NeXTStep started a new life as Mac OS X. The new OS had a rewritten Finder with some concepts borrowed from Workspace Manager, emulation of Mac OS 9 using the ‘Classic’ (or the ‘Blue Box’) environment, and apps, such as Mail and TextEdit, that were direct ports and evolutions of the NeXTStep apps of the same names. The Dock also reappeared, with a new set of squirming and shuffling animations. The old Objective-C programming APIs were carried over from NeXTStep, including the Cocoa APIs that remain in Mac OS X to this day.

However, even though Mac OS X is, by any reasonable definition, NeXTStep, other Unixes, such as Linux, also have a lot to thank NeXTStep for. You see, NeXTStep proved that *nix can be friendly to sysadmins and lusers alike, and also shoved Unix directly in the spotlight. Apple was saved from almost certain doom by the return of Steve Jobs from NeXT, and, in a way, Unix was saved by NeXTStep/Mac OS X. It alerted the end-user to the fact that there was an alternative to Windows, which is why we are seeing the increasing proliferation of desktop Linux distributions.

NeXTStep made such a bold move that people still use it today. The last release was NeXTStep 3.3, which was by far the most popular release of the operating system. Some still use it today. There are even attempts to create a GPLed implementation of the NeXTStep API (leaving our site), and there are several window managers based on NeXTStep’s desktop environment. (My favourite is Window Maker.)

So, in a way, all desktop OSes owe something to NeXTStep. It was an OS that was way ahead of its time, in that it used object-oriented programming from its first release in 1988: this later became the norm for all major desktop operating systems, including Windows. And, perhaps most importantly, NeXTStep was the best desktop Unix that was ever released to run on a PC.

NeXTStep screenshot from nextarchive.net



Powered by WordPress 2.7 Comments are the responsibility of their respective author. The Rest © 2007-2009 Jonathan Rothwell, unless otherwise stated.