• Welcome to the new Internet Infidels Discussion Board, formerly Talk Freethought.

Apple's MacOS Branding Doesn't Acknowledge Its NeXT Heritage

lpetrich

Contributor
Joined
Jul 27, 2000
Messages
25,444
Location
Eugene, OR
Gender
Male
Basic Beliefs
Atheist
First, why MacOS and not something else?

It started in Apple's early years, when Apple's earliest computer designs were named Apple I, Apple II, and Apple III. Apple's next computer design could have been named the Apple IV, but someone decided on "Lisa" instead, and the name stuck. It was named after Steve Jobs's first daughter, but it was then interpreted variously as "Locally Integrated Software Architecture", "Lisa: Invented Stupid Acronym", and "Let's Invent Some Acronym". This was followed by what could have been the Apple V, but Apple employee Jef Raskin liked McIntosh apples, and he changed the spelling to "Macintosh" to avoid legal conflicts with audio-equipment manufacturer McIntosh Laboratory, Inc.

The original Macintosh succeeded, and Apple has built successors of it ever since.

But Apple did not give any official name to its operating system for several years after its 1984 introduction, calling it only System. But in the early 1990's, Apple supported Macintosh-clone efforts, and that required giving an official brand identity to its OS. Apple abbreviated "Macintosh Operating System" to "Mac OS" sometimes spelled "MacOS". The first version to be called "Mac OS" rather than "System" was 7.6.

Also in the early to mid 1990's, Apple went on a quest for an improved operating system, something with full-scale preemptive multitasking and protected memory, neither of which the then MacOS had. It had very limited preemptive multitasking and only one memory space for every app, instead of one for each app.

The first effort consisted of writing down a lot of features on pink and blue index cards. The pink ones contained a wish list of advanced features, while the blue ones contained more easily implementable features. Many of the blue ones' features ended up in later MacOS versions, while Apple started a development project called "Pink" to implement the pink cards' features. It eventually teamed up with IBM to develop something that they renamed "Taligent" (talent + intelligent). But it never got very far, and it eventually sank without a trace.

Aaron Hillegass in "Cocoa Programming for Mac OS X" has this anecdote (p. 47):
Once upon a time, there was a company called Taligent. Taligent was created by IBM and Apple to develop a set of tools and libraries like Cocoa. About the time Taligent reached the peak of its mindshare, I met one of its engineers at a trade show. I asked him to create a simple application for me: A window would appear with a button, and when that button was clicked, the words "Hello, World!" would appear in a text field. The engineer created a project and started subclassing madly: subclassing the window and the button and the event handler. Then he started generating code: dozens of lines to get the button and the text field on the window. After 45 minutes, I had to leave. The app still did not work. That day, I knew that the company was doomed. A couple of years later, Taligent quietly closed its doors forever.
Over 45 minutes to do something that someone could easily do in a few minutes with most other GUI toolkits.

In that time, Apple also started a project to create a new operating system, originally called "V2" if I remember correctly, from "version 2". It was originally a new kernel and filesystem, but the project kept getting more and more features that it was to implement -- without getting them fully working.

The first step was called Copland, named after early 20th cy. American composer Aaron Copland. It was to run all existing MacOS apps and all GUI code in a memory space called the Blue Box, after those blue cards. Apps that wanted to do number crunching would have to be factored, with the number-crunching parts outside of the Blue Box.

After that was to be Gershwin, named after early 20th cy. American composer George Gershwin. It was to run every app in its own memory space, thus having full-scale preemptive multitasking and protected memory.

Apple could not get Copland in good working order, and in mid-1996, then-CTO Ellen Hancock advised cancellation of it. Apple then searched for alternatives, with EH liking Sun Microsystems's Solaris and then-CEO Gil Amelio liking Microsoft's Windows NT. Ex-Appleite Jean-Louis Gassée had founded a company that made a nice OS called the BeOS. But it was incomplete -- it couldn't print -- and JLG asked for a big sum as the price for being such incompetent stumblebums.

All three proposed OSes -- Solaris, Windows NT, and the BeOS -- would have gotten the MacOS up to Gershwin standards.

But what Apple chose in late 1996 was a big surprise for everybody.
 
This surprise owes its existence to Steve Jobs having been forced out of Apple in 1985. Though one of the company's founders, he could not get along with much of the management that joined the company as it grew. So they banished him to "Siberia", an out-of-the-way office where he would work on "strategic planning" or some such. He quit, and he sold all his Apple stock except for one share. He kept that so he could follow what Apple was doing.

But he did not rest. He started a new computer company, NeXT, named out of hopes that its computers would become the next big thing. Its first computer was introduced in 1989, with plenty of hype. It had a very advanced design, but it was very expensive by desktop-computer standards.

Its OS, NeXTSTep, used a kernel called Mach, a "microkernel", one with rather limited capabilities. It switched control among bits of software that were running, it created memory spaces for them, and it managed communication between bits of software, but not much else. Some other OS kernels are much bigger, including file and network handling, and sometimes even device drivers. Yes, seriously. To update one's device drivers in the early years of Linux required rebuilding one's Linux kernel to include the updated ones. Fortunately, more recent versions can do what other OSes can: load and unload drivers.

On top of Mach was a layer that does files and networking and the like, a version of BSD Unix, the "BSD layer".

On top of that was a GUI shell that was "object-oriented". Each kind of GUI widget, as it is called, is implemented as not only a data structure, but some software that can do various things with the data. For instance, one can define a generic GUI widget, a "view", and make other GUI widgets subclasses of it. A view would have a size and have a method function for displaying itself. It would be a method that does nothing, but a method that can be overriden. A text field would then have a "draw a text field" version of the displaying-itself method, a button "draw a button", a checkbox "draw a checkbox", a slider "draw a slider", etc.

NeXTStep was completely GUIfied, much like the MacOS. While one could get a Unix command line in a window, one did not need it for most ordinary tasks.


The NeXT cube was not very successful, and neither was some later NeXT hardware, and in 1993, NeXT went all-software. It offered its GUI shell as "OPENSTEP", and it could run on top of other OSes, like Windows and workstation Unix flavors. But that was not very successful either, despite Steve Jobs bragging about how useful it was for writing "mission-critical custom apps".

By 1996, Apple was rather badly in decline, and NeXT was also rather badly in decline.
 
But on December 10, 1996 was a very startling announcement. Apple had purchased NeXT. A merger between two failing companies? Was this going to be the high-tech version of the Penn Central merger? In the late 1960's, the Pennsylvania Railroad and the New York Central Railroad were failing, and in 1968 they hoped to avert bankruptcy by merging as the Penn Central. But in 1970, the Penn Central went bankrupt, in the then-biggest bankruptcy of US history. Most of its assets then got new owners, like Amtrak, Conrail, and various cities' commuter railroads, and Conrail itself was eventually divided between two other railroads, CSX and Norfolk Southern.

Was this Apple-NeXT combination going to go the way of the Penn Central?

What happened at Apple over the next year was a coup from within, with Gil Amelio getting ousted and Steve Jobs becoming the CEO. Avie Tevanian, his head of software development at Next, became head of software development at Apple. But while NeXTStep was a Gershwin-level OS, it took some time before Apple offered a NeXT-based OS to its customers.

On the way, Steve Jobs ended the cloning program, so as not to lose sales to competitors. This hurt JLG's company, Be, very badly, since the Gershwin-ish BeOS had been running on Macintosh and Mac-clone hardware, upstaging Apple. Be has to move to PC (PeeCee?) hardware, and it had very little success there. The biggest alternative OS there, Linux, was not very big -- and it was essentially given away.


In the months after the merger, it became evident what Apple's plans are. Its new OS would be essentially a version of NeXTStep, with the same kernel, Mach, the same Unix support, a BSD layer, and the same GUI shell. Even the developer tools would be carried over: Project Builder and Interface Builder.

The existing MacOS would be run in a memory space called the Blue Box, after what it was called in Copland. The NeXT GUI stuff got named the Yellow Box at first, but it was eventually renamed Cocoa, a hot-drink name inspired by Java's name. It was named after a variety of coffee grown in that Indonesian island.

This update of NeXTStep was internally known as Rhapsody, after George Gershwin's Rhapsody in Blue. But when it was released in 1999, it was named MacOS X Server. It was MacOS X because it was a successor of MacOS 9, and X and not 10 because it had fewer symbols, I think. Around this time was the last release of the "Classic" MacOS, as Apple eventually called it: MacOS 9.

But developers had a big problem: going from Classic MacOS code to Cocoa required a massive rewrite. Everything that does anything with some GUI widget would have to be completely rewritten. Even the GUI-widget layouts would have to be redone.

So Apple developed a halfway house called Carbon, after the backbone element of biological molecules. It was much like Classic MacOS, meaning much less rewriting needed. It could even run in Classic MacOS. But it could also run outside the Blue Box in MacOS X.

MacOS X was released in mass-market form in 2000 as a public beta, then in 2001 as 10.0.
 
The year 2000 saw the last release of MacOS Classic, 9.2.2, along with MacOS X 10.0.

Apple dropped Classic in 2007 with the release of 10.5.

Carbon lasted longer, but was officially deprecated in 2012 with the release of 10.8. Carbon apps can still run, but Carbon has not been updated to 64 bits, and when Apple goes all 64-bit, Carbon will end.

The NeXT/OSX Project Builder was renamed Xcode in 2003, and in 2010, the NeXT/OSX Interface Builder was folded into it.

Mac OS X became OS X in 2012, and then macOS in 2016, using the spelling convention of iOS, tVOS, and watchOS. But it now has very little in common with the original MacOS, outside of the menubar on top of the screen.


I looked through Apple's site, and it did not have anything on Apple's history. I then checked on Apple Developer, and no history there.
 
Two other notable users of NeXT workstations are John Carmack of id and Tim Berners-Lee of CERN.

John Carmack developed the notable first-person shooter Doom on one, and Tim Berners-Lee developed the first World-Wide-Web software on it: the first HTTP server and HTML renderer -- the first web server and web browser.


I should add about OSX that Apple finally reached its Gershwin goal with it.

Steve Jobs WWDC 2002 - Death Of Mac OS 9 - YouTube -- a mock funeral for the last major update of MacOS Classic. He could have made a nod to its predecessors, all the way back to the original Macintosh of 1984. He also could have made a nod to the NeXT heritage of OSX, because that's what he worked on in his exile from Apple.

WWDC = Worldwide Developers Conference
 
Another NeXTism in OSX/macOS is the Dock, a display of icons of active and remembered apps. I remember using something similar in my later years of using Classic: someone's app called Applicon and then The Tilery.

I found some screenshots of NeXTStep and OpenStep online, and I looked at what those screenshots contain. The NeXT Dock was on the right of the display, at least by default.

The NeXT turned app menubars into a menu on the top left that is always open. OSX, however, carries on the Classic tradition of a menubar on top. Windows puts app menubars into app windows, and I recall that Acorn RiscOS puts them on the bottom of the display.


Yet another NeXTism is the favored programming language for the GUI shell: Objective-C. Like C++, is an object-oriented extension of C, but it works differently. I will explain the difference as C function calls for invoking object methods.

C++
object.method(args)
is
class_method(object, args)

Objective-C
[object method: args]
is
invoke_object_method(object, "method", args)

Both approaches have their pluses and minuses. The Objective-C approach is more flexible, since one can check if an object responds to some method at runtime. However, C++ has much less method-invocation overhead, since its compiler does the work of resolving methods. So all one does when one runs it is jump to the address of that function in the memory space.

It's possible to write wrappers for Objective-C object invocation in other programming languages, like PyObjC in Python.


Apple has recently introduced an alternative to Objective-C: Swift. It hides the pointers of Objective-C, and it has lots of convenience features. If you have used the likes of Java and Python, much of it will seem familiar, and it has lots of convenience features. As far as I know, Objective-C only got a lot of use with the NeXT, OSX, and iOS GUI shells, but Swift seems to be getting more broad use, or at least more broad interest.
 
Yet another NeXTism was the original OSX busy cursor. It was derived from the NeXT one, a cartoonish depiction of a spinning optical disk, with its rainbow colors. This was eventually given a glass-bead look, giving rise to the familiar spinning beach ball.

Also a NeXTism is the graphics-rendering layer. NeXTStep used Display PostScript, with apps issuing PostScript commands that get rendered for display on a screen rather than in a printer. For OSX, Apple replaced the PostScript in it with PDF, and named the result Quartz. This meant paying much less in license fees to Adobe, among other things.


MacOS Classic used QuickDraw, and it had lots of problems. Data structures were exposed, and coordinates were all integers, and 16-bit short integers at that, meaning no fractional values. That made it difficult to extend. It was originally 1-bit black and white, and going to color required a rather horrible kludge. BTW, a "black-and-white" TV is really a grayscale TV. In the early 1990's, Apple tried to fix QuickDraw by introducing QuickDraw GX. It fixed these problems, having opaque data structures and fractional coordinates, and it had lots of fancy features, like fancy typography. But it was a bit heavyweight for the Macs back then, and it never caught on.

Another graphics-software package that Apple introduced back then was QuickDraw 3D. It had two parts, a high-level, "retained mode" "scene graph" that kept in memory graphics primitives, and a low-level "immediate mode" part called RAVE, more-or-less OpenGL Lite. Apple was never successful with either, and it dumped high-level QD3D, and it dumped RAVE for OpenGL itself. There is a cross-platform open-source imitation of QD3D called Quesa, if you wish to try using it.
 
There is a big survival of MacOS Classic in OSX, and it is in OSX's file manager. It carries on Classic's icon and list views, and even its name, Finder. However, it also carries on NeXTStep's multicolumn view, with each column listing a folder's contents, and with a selected folder in it having its contents displayed in the column to the right of it.

OSX also uses a multicolumn view in its open-save dialog boxes.

I myself tend to prefer list view, because it is more compact than icon view, and because it can be sorted by date or kind or whatever, and not just by name.
 
Back
Top Bottom