|Home » Learning Curve » Red Hat Diaries
Memories of Steve Jobs
And the technologies he spearheaded.
Our first encounter with Steve Jobs occurred in the 1990s. Steve was by then at NeXT. He did all his work at NeXT - John Lasseter took care of Pixar. NeXT Computer had become NeXT Software and we were contacted by the local office. They wanted us to consider a permanent exhibit of NeXTSTEP in our offices.
The Unix expo the following year saw NeXT represented by a small booth with a single NeXT computer. We brought a small entourage to show people what NeXTSTEP was all about. We greeted the rep whom we knew from several meetings in the past and we asked if he could impress everyone by creating a new NeXTSTEP application on the fly.
'What kind of application?' he asked.
After several seconds of deliberation we offered: 'a phone book application'. One of Microsoft's classic programming tutorials for Windows showed prospective coders how they could string together a simple app for recording names, addresses, phone numbers in 2,000 lines of code or less. It wasn't the best of tutorials ever and we later wrote our own version, completing 729 lines of code for the finished product in six hours, making it much simpler and a lot more stable.
A girl in the group asked 'what do we need a phone book application for' and someone else quipped 'for all your boyfriends of course'. Said and done. The NeXT rep got to work (if you could call it that).
He fired up Interface Builder, a product of the genius of Jean-Marie Hullot, a product worthy of an article in its own right. Suddenly there was a window on the screen, and with a deft use of a shift key and a mouse drag, suddenly there was a matrix of input fields in the window.
'Let's put numerical input validation on the phone number field', suggested the NeXT rep. He dragged a doodad from a palette and numerical input validation was said and done.
Less than five minutes later we had a full fledged phone book app on screen. We invited the same girl to step forward and test the app. The test went well. Then she turned to the rest of us and felled yet another great question.
'So what am I supposed to be impressed with here?'
One of us answered: 'That's a full fledged app. You've run it, you've tested it, it can save files and retrieve files and edit files. And it was finished inside five minutes'.
'So we needed six hours to do the equivalent on Windows. And you know how fast we are.'
People rolled their eyes heavenward even when talking about NeXT icons. Not the scroungy wee things on Windows at 32x32 in '16 colours' (actually closer to 14) or the black and white icons on the Mac, but gigantic 48x48 icons in 4096 colours - 'near photographic quality'. Dazzling graphics can perhaps be more impressive to tech freaks who normally aren't near that side of computer science.
The NeXTSTEP press kit we had was dazzling too. The NeXTSTEP source editor was doing things back then that Apple's Project Builder and Xcode haven't come close to - the product was simply 'next'. Twenty five years ahead of its time.
Apple gave Steve Jobs a bigger market demographic but the brilliance of NeXTSTEP would never be surpassed in all the years to come. The on-disk application layout was very strange but one couldn't argue with the way the system played well with everybody. NeXT had to play well with everybody: they were coming out of nowhere and couldn't hamstring a user base. Steve Jobs' famous 'Auntie of all Demos' in 1993 showed just what a good player NeXTSTEP was - again the demo revealed a system doing things Apple's OS X of today still can't do.
Steve Jobs picked the 'best of the best' for NeXT - the best tools and the best people.
√ The MACH kernel. Use a microkernel architecture to make the system even more stable. Who cares if Unix is already stable? Make it more stable! The kernel panics of Linux adopters prove the point.
√ Avie Tevanian. One of the chief architects of the MACH kernel at Carnegie Mellon and a great project shepherd at NeXT and later at Apple.
√ Objective-C. The only object orientation system worthy of the name outside PARC. The only one built for production purposes. Like the mouse before it, Objective-C took something out of Alan Kay's group and made it work for the consumer public. A totally different approach than that used by the abortive C++ and who knows how many sad offshoots by Microsoft and others.
√ Interface Builder. What every GUI developer had always wanted but never got. The concept of the 'freeze dried NIB' was born. Jean-Marie Hullot had written the app SOS Interface for the Mac. Steve Jobs heard about it and invited Hullot to Redwood City, saw the app run and jumped through the roof, exclaiming 'I want that app on my computer!' He then went out and bought up every copy of SOS Interface he could find and took it off the market. Jean-Marie came to work for NeXT and changed computer science history.
Steve Jobs thought NeXTSTEP was five years ahead of its time but he was wrong. It was twenty five years ahead of its time. It was twenty five years ahead of where a great part of software technology is even today. The sad fact is no one else ever attempted to employ the same principles. Not ever. Even today. That's a very sad fact. Because the NeXT way is the way all software should be built. Fewer bugs, greater symbiosis with client demographics, production times cut to a fifth. And it's also very cool.
NeXTSTEP is what the software industry lacked both back then and even more so today.
Steve Jobs wasn't a programmer. He never wrote Lego code in BASIC forty years ago like Harvard dropout Bill Gates. But Steve Jobs grokked technology. His most famous quip was 'this is shit', meaning something wasn't focused enough. He could grasp a lot of what technology was about. Check out his demo on NeXTSTEP 3.3 to get a much better idea. Rarely has there been a CEO anywhere who's had the chops to manage a company like Steve Jobs. Steve Jobs 'got' what NeXTSTEP was all about - he shows you in his demo in characteristic Steve Jobs fashion.
The legend of how rounded rectangles came into being can wait until NeXT time.