Looking Back At NeXT
jregel writes: "Ars Technica has a link to an old Newsweek article that was written when Steve Jobs was about to unveil the NeXT computer. It's an interesting read, with some amusing pictures of industry characters including Scott McNealy and Bill Gates. Although most of us have probably never had the opportunity to play with a NeXT computer or use Nextstep, both the hardware and software were revolutionary and represent one of the biggest missed opportunities in the industry." Then again, how much of this is parallel to the MacOS X stuff? Maybe the photographs will convince people once and for all that I don't look like Steve Jobs.
The original Mac was also spendy as hell, and eventually took off only because of hefty student discounts and the rise of DTP and multimedia. NeXT failed because they never really had a niche -- their systems weren't quite as easy to use as a Mac, due to their UNIX heritage, but weren't quite as powerful as a Sun or SGI; they had great multimedia support in hardware, but initially shipped with a low-bitdepth greyscale monitor; etc., etc.
Personally, I think that the NeXT systems would have done much better if they had come out a little later...like 1997, when Apple was licensing for clones. The hardware could have been updated for PowerPC, and they would have been kick-ass workstations and lightweight servers. Development on NeXTStep is as easy as development on Windows, without the lobotomizing effects of excessive exposure to Microsoft tools.
I suppose we're getting pretty close with OS-X. The development environment is incredibly NeXT-like, with a few modern updates (like kick-ass Java support). G4 hardware is considerably cheaper than the old NeXT gear, and they've certainly improved in a number of areas of usability. Then there's the one ingredient that NeXT never had: the laptop. I'll sign whatever I have to for a G4 PowerBook with OS-X...drool...
Ester Dysan in the article mentions that Gates would end up producing NeXT software because "he's a smart businessman." While that non sequitor placed him in a warm light of misplaced optimism, the suspected 'dark side' of his alterior motives, opposing the operating system he could not own, was dead on the money.
My earliest memory of discovering "the Real Gates" came from the late eighties when watching Computer Chronicals on PBS. Before actually seeing Bill, I'd heard rumors that he must be some great software engineer, and that he used to "hold contests for programming business apps, so he could outpace them all with QuickBASIC." But the reality of his mindset was seen on the East versus West "Computer Bowl" around 1988. The three questions I saw him answer were very revealing:
(1) "SPOOL" describes a queueing operation, such as sending a document to a printer device. What does the acronym SPOOL stand for?
Gates: No clue.
Answer: Simultaneous Peripheral Operations On-Line.(Granted, it's understandable that such trivia could easily be missed, even though I knew it.)
(2) MIDI is the standard for Musical Instruments Digital Interface... but How Many pins are in a MIDI plug?
Gates: No clue.
Answer: Five. (THIS is the man who claims he will bring us multimedia on the PCs? Has he ever LOOKED at multimedia instruments or technology?)
(3) Who is the top earning CEO in the Computer Industry?
Gates: "JOHN SCULLEY OF APPLE!" (Correct!)
I think he may have even quoted the salary Sculley was making! It didn't take him a blink of an eye to issue that answer. It also took him only two more years to get that answer changed to "Bill Gates." From that point on, it was clear to me where Bill Gates "inventive" mind really is.
Specifically: NeXT leveraged the run-time-binding in Objective-C to create InterfaceBuilder (IB). IB allowed the programmer to create a UI by dragging and dropping interface objects. Yes, a lot of tools do that, but IB was different in that it wasn't a code generator per se. IB created a "nib" file that basically "freeze dried" the UI objects and their relationships. You dragged and dropped your buttons and text fields and other widgets, then you dragged connections between them and clicked radio buttons to specify which methods the buttons would invoke. Very slick, very fast and you didn't have to tromp through a bunch of Obj-C source to make changes. (You could even hack the UIs of apps without needing the source!) A brilliant tool for constructing "mission critical custom apps," which NeXT finally determined was its true calling. I remember watching a video of the 1992 (I think) NeXTWORLD keynote where the Steve used IB to query a database and display the result (including a tiff, IIRC) without "writing any code..." Wow.
So what killed NeXT? High prices, lack of standardization with the X community, and (ultimately) the Web. Even after they killed their hardware in 1992 and went x86, the developer version of the software cost $3K-$5K/seat. IB and its integrated editor-debugger-source-manager ProjectBuilder were great for building client-server apps, but the three-tier world marginalized them. WebObjects (their middle-tier software, now offered by Apple) is supposed to be pretty good but has a pretty limited following.
I have my NeXTstation in the basement and have many fond memories of late-night hacking on it. The spirit lives on in GNUstep. The software lives on as Mac OS X Server but latest word has it that Obj-C has been deprecated in favor of Java, at least for WebObjects.
Neutron
I get my kicks above the
The NeXT failed for a lot of different reasons. Mostly economic.
While the NeXT was revolutionary, its cost per performance was iffy. The magnesium cases were way cool, but they cost a lot. As did the rest of the NeXT hardware. As other posters have said, the other workstations of the era (Sun 1+?, Apollo 3k&4k, Cybers, etc.) were as fast, or faster, and cost less. NeXTStep had the software down, but it was aimed at educational institutions. Which is all well, and good, but its hard to maintain a company on edu discount sold machines. The return from the discount is years off, and it doesn't sell enough units toi remain afloat long.
There are other issues; the NeXT used display postscript, instead of X, as the GUI. there were X servers for NeXTStep, but they were slower than a native server would have been, and the other native apps being 'like'; but not always the same as other platform equivelents hurt the platform.
It was also the era where, for whatever reason, Sun was king. it was the default platform to develop for, and a lot of 'cross compatable' software was really SunOS only (much like a lot of platform compatable software now only natively compiles on Linux, but thats neither here nor there).
NeXT was also slow to innovate. In its lifetime, there were only a handful of different models made, they were slow on the release cycle and were behind the pace - other manifactures would come out with their bigger and better machines first.
Another kicker is that while the NeXT was a cool as beans desktop machine, as a remote system it was nothing out of the ordinary. it was almost a standard unix shell, which lost to Apollo as Domain/OS was very spiffy in ways that unix can only dream about now, and to Sun on the cost and compatablity issue.
Eventually, NeXT stopped producing their own hardware, and went just to working on the OS. Hardware is expensive and has low margins, comparatibvely, but, at least IMO, no company can support themselves based on an OS alone. Be, for example, is viable now, but they lost a lot of momentum when they gave up the BeBoxes (and I'm not convinced they will last, either). The OS petered around for a few years, and NeXT made semi-regular releases for a while, but a lot of what they had that was unique, besides the GUI look-and-feel, was done elsewhere, nearly as good, for free OSes(or effectively free, if its the OS the machine shipped with).
So, there are a number of reasons NeXT failed. A poor long term business plan, a loss of momentum after the hardware branch was dropped, slow to meet new technologies. Probably other reasons, as well.
I bought a NeXT as a freshman in college in 1991. Prior to that, I had been a Apple fan, having learned structured programming in Applesoft BASIC (!) and later, Pascal on a Mac. I had contemplated buying a Mac when I got to school, and had picked out the model. I don't remember the specific number, but it was a mid-range box with a separate monitor and a 68030. The rig + software was going to run me $3500.
I had been interested in the NeXT since I'd first heard about it during the company launch circa 1988, which (as you can see from this article) did gather quite a bit of popular attention. I never imagined I'd actually get to use one of these things, and was totally pumped when I found out that our school not only had a few, but that they were available for sale in the campus store.
1990 was the year the second-generation NeXT machines were announced- an upgraded "Cube" and the new, ultra-slim "Slab", which made even a sparcstation look clunky. What astounded me was that the base-model slab sold for $3000, with a 20MHz 68040, Motorola DSP, hi-res 17" 2-bit monochrome monitor, 8MB RAM, and a 104MB hard drive. With the addition of an external 135MB drive, I was at the same price as the Mac I'd wanted for the next generation in performance, across the board. I didn't need to buy any software- it came with a Word processor, some games, and pretty much everything else I needed. It stomped on all of the PCs and Macs at the time in terms of processor speed, and looked damn cool sitting on my desk. It wasn't a tough decision.
A number of people in this thread have said that the NeXT didn't have much that was special about it's hardware. I'd have to disagree- the inside of that machine was nearly as beautiful as the outside, with a motherboard that looked absolutely vacant compared to most others of the time. It had a stupidly small number of cables: a power cable to the CPU, and a single cable from the CPU to the monitor which carried power and everything else (sound familiar?). The keyboard plugged into the monitor, and the mouse plugged into the keyboard. These 2nd generation machines corrected most of the problems of the first gen- the 68040 was fast / competitive with other processors, and they dropped the optical drive for SCSI hard disks for primary storage.
Of course, the software kicked ass. I used the machine very productively throughout college- as a computer science major, the fact that there was UNIX under the hood was a major benefit, since I was able to get gnuemacs, gcc/g++, LaTeX, and all of the other tools necessary to duplicate the development environment used on the Sun-based campus network. The DSP didn't add a lot of real value, but it sure was fun to prank around with the demo programs that used it, as well as the wide variety of sound utilities available on the 'net. The machine came with Lotus Improv, which was a total-rethink of the spreadsheet that, while missing major areas of functionality (undo, scripting in formulas), was totally symbolic (no absolute cell references) and could handle 7-dimensional sheets with ease.
Indirectly, this machine got me my first job, and set me on a career path that I'm still following today. Because it was UNIX, I was one of the few students on campus that had root access to anything (Linux hadn't really hit yet, and the university computers were locked down), and I got the chance to poke around the machine and learn the basics of system administration. Which got me an on-campus job doing UNIX system administration as a sophomore, and, well, I've been hooked since.
Today, the machine sits on my shelf, looking cool, but not doing anything. It still runs (mostly), but the last time I upgraded the OS, the minimum RAM requirements exceeded 8MB, and I just haven't had the need to justify the effort to track down the ancient SIMMs that would be needed to get it usably fast again. I do miss it- I still get pissed off at the relative clunkiness of nearly every other OS. The NeXT was a work of art in many respects, and it was very sad to see the company eventually fade to black.
Which is why, for the first time in years, I'm excited about the Mac again. I really hope they get OS/X right, as Apple has the market power to make this cool tech successful in the mainstream. It would be really great to see a measure of grace and elegance restored to the OS world that I think was lost when NeXTStep went away.
Though NeXTStep certainly is interesting, I do not join in the uniform praise for it that everybody else seems to have. I am also worried that the problems with NeXTStep are being duplicated in BeOS, OS X, and (somwhat) in Gnome and KDE.
Good points:
The postscript interface to the display. It included Adobe's "DPS", but it should not be confused with DPS on X. The important difference is that all commands (such as to create a window) were in PostScript. It is difficult to describe how incredible an advantage it is to only have to think about a single "context" to get all your work done. X is a total hassle where you have to manage windows, gc's, OpenGL glxContexts, DPS contexts, and perhaps the new "Xpicture" objects. NeWS also had this, and in fact integrated it better: the window-creation commands described the window shape using PostScript paths and transformations.
The PostScript printer really worked, far better than the mess that is on Linux now. You could, with incredible reliability, do popen("lpr") and send any postscript you wanted, and it would queue and print!
Problems:
The lack of a hard disk on the base model was a real problem. Basically the optical disk had to be used as a hard disk. Jobs thought people would own their copy of the system and stick them in disk-less machines on a campus to enable them, this is in fact insane if you think about the need to store location-specific configuration imformation like the name of the printer server! (The machine I used had a hard disk, in that case the optical was an excellent back-up device)
NeXTStep wad very slow to start any applications. It had to completely build every single control panel that would ever be used when it started up. At the time I thought this intolerable, but I guess it has become standard on Windows and Mac.
This meant terminal.app was slow to start. Very frustrating for Unix users who wanted to create and destroy these rapidly. For this reason the first software we worked on was a replacement for the terminal (the marketing name was Communicae), and our intention was to bypass as much of NeXTStep as possible. I also wanted to get rid of the menu (which is pretty useless for a terminal) and it appeared to be impossible to make a menu-less NeXTStep program.
This ran into the most serious problem. Though enough information was provided so that we could create plain windows with PostScript, getting them to cooperate with the NeXTStep programs required tracing down (often with disassembly) a lot of undocumented stuff. The NeXT programs refused to click on top of my windows, and many many other problems.
This was an absolute pain in the ass, and NeXT's attitude that we were nuts for avoiding their wonderful code did not help. There are very good reasons for using low-level programming, for instance to get maximum speed, to try new GUI ideas, and (most important nowadays) to write cross-platform code.
I want to plead to the OS-X (and BeOS) designers to not repeat this mistake: please document how to bypass the toolkit!. If you don't, people are going to write incredible kludges to achieve it, and you will have a worse problem remaining compatable in the future. And if you suceed in making it impossible to bypass the toolkit, you will completely cut off any company that is interested in porting software from Windows or Unix but not willing to commit a lot of resources yet...
I also think NeXTStep had some design problems, and am scared at how many of them are being copied today:
Steve Job's hatred for the second mouse button resulted in insane design decisions. The NeXT had two buttons, and there was an option to treat them the same or different. Unbelivably, this modified the server (rather than just set something that NeXTStep read). A program using NeXTStep (or even bypassing it) could not tell the two buttons apart, unless the configuration setting was changed!
"Layers" This is being copied by Gnome, and sort of copied by the "Dock" being used by Windows and OSX and Gnome. "Layers" are why the menus and toolbars are atop the programs and have to "hide" when the program is "inactive" (not to be confused with child/transient-for windows, which are atop a *specific* window). "Layers" are also why the dock is atop all the windows, making a large amount of screen space useless (all modern systems "solve" this problem by providing the auto-hide option).
Let me plead again with the designers: let me click any window atop any other unrelated window! It is not that hard, in fact it simplifies the interface considerably!
And don't give me the excuse "but that will make the dock (or menu) hard to get to". That problem applies to every window on your screen, and you should be working on improving window navigation, not arrogantly claiming that some windows are "important".
Jobs and many other UI designers seem convinced that showing a '/' character in a filename is user-unfriendly, and go through all kinds of weird hoops to avoid it. The Mac and Windows use newlines (and you have to hold a damn mouse button down to see it), while NeXTStep (and OSX) have this column arrangement where you have to scroll horizontally to see where you are! Comon, guys, it really is not that bad to display a slash! In fact the average user sees them all the time on the net! And if you did, it would be much easier and clearer how to cut & paste or drag & drop a filename!
I did not like Objective-C syntax for methods, it was totally different than the syntax for a function call. This made it impossible to switch an interface between C functions and methods, even with macros. People say it was like that to "look like SmallTalk" but that is bogus, as SmallTalk has *only* that syntax. The dual syntax was so the parser could be cheap, no other reason!
Also the first versions were too dynamic: if you mistyped the name of a method you would not find out until you ran the program and it tried to call it! Extremely bad for code such as error handlers that may never be called. They tried to fix this and had lots of trouble with already-existing code that relied on it (because you could create methods at run-time!).
NeXT certainly didn't fail. Oh, the NeXT Cube and the other hardware offerings were never hugely successful -- the lesson there isn't new, any largely closed, difficult to upgrade and expensive hardware has faltered and ultimately failed without a redesign. That's the other lesson Jobs should have learned at Apple (other than the one about retaining 51% ownership).
But the NeXT company and software, now, that succeeded very well. Microsoft ripped off some of the NeXT GUI's elements for Win95. The GUI itself has been cloned for other Unices. Their NeXTSTEP/OPENSTEP and WebObjects software has been very successful.
And finally, Jobs and NeXT very successfully convinced Apple to give them money to take over the company. (Sure, on paper Apple acquired NeXT -- but look whose management is now in charge at Apple.)
Hardware comes and goes, but the NeXT design concepts live on.
-- Alastair
Owning a NeXTStation in 1991, I cannot share this enthusiasm.
The Unix below was quite rooten, performance-wise, from a porting standpoint and from correctness and freedom of gcc warning issues in include files.
The great GUI and its builder were shipped without documentation until Simson Garfinckle finally wrote his book. You were supposed to use their 5-day training and fill the holes with an expensive support contract.
Hardware interface was also notoriously bad:
- Ethernet and SCSI really had sub-standard
performance. SCSI couldn't use many of the
available PC disks at the time.
- No slots, obviously.
- Only 8 RAM slots in the station (=32 MB).
- Non-upgradable Video card, and that with
display postscript and its tendency to do
single-pixel updates.
I originally bought it mostly because it came with some nice commercial software packages bundled, because it was faster than a SPARC at the same price and I liked (and still do) Objective-C. PC Unixes were crap at the time. But soon the rotten Unix was what killed it for me, I bought a SPARC 18 months later (both systems from my personal money), sold the NeXT and was happy (until Solaris-2.1 made me switch to free PC Unixes). In retrospective, it had been better to buy the slower SPARC in first place and most of the commercial software sucked anyway and you weren't supposed to update the stuff that came bundled (as if much NeXT software ever got into several releases...).
Martin
A couple of corrections regarding your post: First generation NeXT machines were 68030 (I believe), the NeXT Cube, Turbo and NeXTstation (+-color) were 68040s at 25 or 33 Mhz. Like even the Macs at the time, NeXTs had an internal and external SCSI bus, so adding a faster/bigger external HD was easy. I don't know of anyone serious who had a NeXT station without a HD. Also, the statement 'The DSP never got used for anything intresting' is completey false. IRCAM (a federally funded research orginization in France) used the NeXT to create the ISPW (Ircam Signal Processing Workstation) and there are probably still some NeXT cubes being used today for live/interactive DSP (although most of the components of the ISPW have been ported over to the Mac in MAX/MSP - www.cycling74.com or in IRCAM's jMax). This probably made the NeXT machine one of the coolest DSP machines ever. I do agree that the NeXT is a very cool looking machine, and I don't plan on getting rid of mine at all. It is/was incredibly stable and its attractive design makes a great terminal/discussion piece for the living room.
Ah! It's about time the Slashdot community recongnized NeXT. So many Linux and *BSD users are oblivious to NeXTSTEP (and later OpenStep, Rhapsody and Mac OS X). The GUI, Objective-C, the programming framework, and Unix and Mach. They're a dream to use!
The GUI: Pure gold, man. In many ways, the NeXT GUI is far more elegant and functional than even the Mac OS GUI- CDE and other WMs and environments for X11 come nowhere even close.
Objective-C: A much better object oriented C than C++. More like a cross between C and Smalltalk than some tacky add on to C. Elegant, simple, and a minimal syntax change to regular C. Dynamic like Smalltalk, but retaining the run-time speed of C. Objective-C's dynamic nature allowed for great products like ActiveDeveloper and Joy Developer which allows Obj-C users to develop apps interactively like Smalltalk or Python, whereas C++ is about as static as it gets.
Programming Framework: Killer API. A rich class library of support classes like the mutable array (what?! you're still rolling your own?) and dictionary (or hash-table) as well as the AppKit, the means of creating GUI apps. Also, distributed objects were a no brainer with the Foundation framework which was a part of NeXTSTEP. It's a good thing to see this framework brought to the masses in the form of GNUstep.
Not to mention the IDE... InterfaceBuilder and ProjectBuilder are two tools which the world just recently cought up with. All of these ideas you see in most modern IDEs were invented for NeXTSTEP.
Unix and Mach: What can I say? Geeks dig it. Mach allows for some funky IPC action, and if you wanted, you could always drop into tcsh if that's where you feel more at home. The truly great part? You didn't have to know how to use a shell to get work done. If you didn't know Unix, you could still have all of the power of Unix exploited by this wonderful OS.
I still use my cube when I can, for lighter-weight computing, something I choose over my Power Mac G4 or a PC running Linux whenever I can.
Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
Reading this article was like a freaky time warp!
* The story itself deals with Jobs unveiling a revolionary CUBE computer, with innovative styling.
* The other main story on the cover says "How Bush is winning."
* The article itself is amlost identical to an article a couple of years ago whre Time chronicled Jobs' Apple turnaround, culimating with his famous Keynote. Many of the opinions of what Jobs was doing now vs. '88 are the same "Jobs is back", "He's learned from his mistakes", "He's matured".
* Bill Gates disparaging a *nix distro as non-revolutionary.
* Bill Gates saying he wouldn't write software for NeXT because the market was too small.
Reading this article was weird, but the one thing that struck me was how nasty Bill was.
-ShieldWolf
just = (My)Opinion.toCents();
> Jobs messes up, because he isn't actually that good at the job
Like most posts about Apple on Slashdot, I can see how someone would think that 5 or 10 years ago (you know, before Linux and Windows 95), but read a bloody paper. Have you seen the way Apple runs now? Have you seen their financial statements? Have you seen their stock performance?
When Jobs took over at Apple, I was suspicious that it was the end, but I was proved wrong. What bothers me about this post is that it has been widely reported with data to boot and this guy still isn't aware that not only is the company making money, but it's making a lot of money. Most of that money comes from out-Dell-ing Dell on how to run a computer manufacturing company. Has everything Jobs done been successful? Far from it. But geez, read a freakin' paper.
The Mongrel Dogs Who Teach
I thought that it was people like Woz that came up with the really cool stuff, and Jobs was just the man in the suit who sells it to the masses...
I think the problem with Jobs is that he has suffered from a syndrome that he shares with Richard Branson. Because the companies he works for and has helped build are relatively high-profile in terms of branding and advertising, there is a media perception that he must be successful. In fact, Branson's companies aren't making profit at all but people perceive Virgin to be a success, and similarly people thought Apple was a great success when in fact whilst he was there the first time, it's fiscals didn't look anywhere near as good as they should have done.
Jobs messes up, because he isn't actually that good at the job - because the media have told you he's wonderful and it's just that everybody else is out to get him, you believe that he is indeed wonderful.
I know I'm going to get flamed to hell for this from the die-hard Mac fans out there, but sorry, I just don't think that spin makes up for substance and as yet I've seen little from the Jobs camp apart from spin and the ability to have smart techs around him a lot of the time that come up with cool stuff.
I never owned a NeXT, but the University I went to bought into it big time, so I did spend a bit of time playing with them.
The software was revolutionary. In many ways we are still catching up. Definitly in having a user friendly Unix we are still catching up. As little as I liked Objective C's performance, it did make things easy. Nice, nice, nice software. Good choice of bundled apps for an academic market too.
The hardware was not stunning at all.
If you sat it next to it's Sun's boxes of the era it was dog slow (if you ran SunTools at least -- if you ran X the display on the NeXT xould catch up). Both had equivolent resultion. The NeXT has 4bit (8bit?) grey. The Sun had either 1-bit deep mono, or 8bit color (which could do 8bit grey) depending on which graphics option you got. The NeXT had a 68030 (68040? 68020? mmmm, maybe the 68030) at something like 20Mhz. Sun had recently come out with the SPARC 1+ the follow on to the first desktop SPARC, 25Mhz I think. But much much much faster. Doing a whole lot more per cycle then the Moto part. The SPARC didn't feel a little faster it felt a lot faster.
The few hardware features the NeXT had and nobody else did were not particurlay well recieved. The "floptical" was a bit fragile, and most people only had the one and no HD so it wasn't removable media, it was just a slow hard drive. The DSP never got used for anything intresting, the promised high speed modem was extreamly late, and I not sure it ever worked. About the only inovatave hardware feature I remember on the NeXT was the cubes looked way cooler then even the new SPARC pizza boxes.
But the software, oh man was that software ahead of it's time...
I first used a NeXT my freshman year at tiny Westminster College (New Wilmington, PA) in 1996 and thought..."Man, why does this look a lot like a perverted cross between MacOS and Win95?" Then I realized that they were actually sitting on Mach. What a concept - a pleasing GUI with a break-out to a real command line & shell! And it could read/write from both MAC & DOS floppies! It had a MC68040, onboard sound, and a MC56000 DSP port, so it had the best bits of MAC hardware without actually running MacOS (oops, flamebait). And it had on-board SCSI, so I could connect my ZIP drive to it! I actually formatted two ZIP disks for under the NeXT filesystem, which I believe was actually 4.3BSD's UFS. :) I bought a slab/monitor/keyboard/mouse/laser printer combo for US$25. It still runs NeXTStep 3.3 in my bedroom whenever I feel like breaking away from the evil OS.
I loved those machines.
WC liquidated the NeXTs last year (our European friends are laughing at our college's initials, I guess.
LONG LIVE NEXT!
DrQu+xum: Proof that the lameness filter doesn't work.
If you want to see what NeXTStep (OpenStep) looked like, you can still download OpenStep for Solaris here. It includes a DPS server; just make certain you startx with -- -dpi 72. It should even run in iBCS under Linux (Sparc), though I haven't tried it.
Free BeOS, runs from a Linux partition