|Home » Learning Curve » Red Hat Diaries
Cross your fingers, hold your thumbs, and knock on wood: they're on the right track.
Apple have done a lot of really regrettable things with their NeXT purchase over the past ten years. And they've done at least one thing right. Actually two.
Getting NeXT was a good move. If you don't believe that then look again at Apple's market position today. Look at the iPhone and ask yourself if it would be possible without NeXT. Look at Leopard. OK you can stop looking for a while.
Some of the bad things Apple have done over the past ten years according to pundits who've followed the developments. This is a short list. You get the idea.
- Ship boxes with dual boot for both 'MacOS' and OS X.
- Not cutting the umbilical cord with 'MacOS' as they once did with the Apple ][.
- Scrap the brilliant 'spatial' cascading menu system for the beige box menu bar.
- Integrating toolbox cruft into the NeXTSTEP API, making things slow and messy.
- Giving in to people like Siracusa and Gruber. NeXT pros protested of course.
- Not keeping the name 'File Viewer' for the file manager.
- Letting the HI group dumb the NeXT interface down.
- Holding back on HR when it was sorely needed.
- Give in to idiots who blog a lot.
- Use the 'MacOS' directory.
Some of the good things Apple did - or tried to do. This again is a short list.
- Provide easy to read easy to use tutorials on migrating to Objective-C.
- Give the fogies every possible opportunity and encouragement to 'come on board'.
- Build up a good online documentation system and provide free ADC tools.
- Establish a smoothly running bug and security response unit.
- Always give users reasonably perfect application bundles.
- Up the graphics layer from EPS to PDF.
Up to now OS X has been a 'half breed'. Half breeds never fare well. They're shunned from both sides. On the one side there's been the graybeards, dreaming of their beloved beige boxes, their 'safe' interfaces, the devotion of a company to 'the rest of us'. On the other there's been the NeXTies and computer scientists from all fields intrigued by this blessed Redwood City API.
They never wanted the same things and they never will. And for ten years it's been a tug o' war inside and outside the Loop as both factions assailed the half breed.
And from iteration to iteration trends have been seen. But with Leopard the picture seems to be clear: Leopard is a NeXT - and not an Apple - operating system. And for the graybeards who still want their creator codes, their file types, their toolbox APIs: 'sorry'. What's not gone today will be gone tomorrow. At last.
Over the years OS X got gaudier and gaudier. Bouncing dock icons are cool the first few weeks but after a while they can get annoying. All the 'glass' in Leopard might get annoying too. But it can be turned off.
Saying that Leopard is built for corporate and government clients doesn't mean Apple have retooled their sales department: we know from reading the sermoner on the mount just how bad things can get. [According to some no longer with the company and no longer privy to what the company are up to - some in a department particularly despised by the CEO to boot.] But what Leopard is geared to and what sales are geared to are two different things.
Apple have had a tremendous responsibility with the NeXT heritage: they paid $429 million for it. Up to now they've not done it justice - they've literally not made a single memorable - historical - contribution.
But let anyone claim upgrading an operating system to 64-bit and doing it as smoothly as Apple is some kind of triviality not worthy of mention and it's not going out on a limb to accuse that person of not only being pompous and irrelevant and irretrievably stupid but of being 100% pure bona fide batshit insane.
Or perhaps the disgruntled graybeards would like to provide a run though of exactly how one goes about thunking code over architectural boundaries? How one collects a series of 32-bit parameters, stretches them out to 64-bit, passes the call on, waits for the reply, screnches the reply and all its constituents back to 32-bit, and finally returns to the caller? And does this for every API in the system?
That's trivial? Fine: let the disgruntled former Apple marketeers sit down, roll up their sleeves, and do it. Otherwise slurp down a jug of vintage shut the F up.
Apple have been moving irrevocably to this point all along. Not everyone has seen it. It won't be the first time Steve Jobs has fooled everybody. But the move now underway is irrevocable: Apple and computing in general cannot stay locked in yesteryear and Apple users cannot maintain isolation from the Internetted world.
Are Apple still doing a lot of things wrong? Of course. But this site is hardly concerned with marketing tactics. It's the guts of the system that are important - a system that once was as beautiful as any system ever made. And that perhaps - hope against hope - is now like the ugly duckling recovering some of its vaunted glory.
After ten years the Carbon programmers are finally being told - still in polite terms to be sure - to either get on the bandwagon or hit the road. And even if Leopard still has a lot of gaudy features - and even incomplete features - there's a 'reek' about it: something has changed. Something in the works for years now.
The iPhone was no accident. As easy as Objective-C programming is it still took two years and more to bring the product to market. But in case the former marketing cruft don't get it: the iPhone is brilliant because it demonstrates dramatically what an API NeXTSTEP has been all along. 'People don't realise what we've done', said Steve Jobs, and he's right - and for once Steve Jobs does know what he's talking about even on a technical plane - see his 'Mother of all Demos' run of NeXTSTEP 3.3 if you don't believe it. People do not realise what Apple did with the iPhone. What did they do? They used NeXTSTEP - and no, most people don't realise what NeXTSTEP is either.
And now Apple have taken the entire NeXTSTEP API and moved it to a 64-bit architecture. If they never do a single thing more the history books will write of them that they were the ones who took NeXTSTEP into 64-bit land. That's really an accomplishment.
No matter what people think of it; no matter how history judges it; people will not tear it down to move on - they'll build on it. Think about it.
And it took years. It took years of not making a clean break but of moving gradually. As if anyone else has ever tried something like this before on such a grand scale. Take the best engineers you find anywhere and ask them to come to Cupertino and manage this affair for the five years or more it takes. Ask them. Even if they're up to it they know it won't be easy. And it wasn't. And all the while they simultaneously managed to get the ARM based iPhone out the door? With an entirely different user interface? 'Verbs' as Steve put it?
People just don't get it. And it's OK if they don't. But it's not OK to be so fricking presumptuous and snarky and act all the time like one knows everything when in reality one knows jack shit. Cocoa APIs are built radically different from Windows APIs. Windows has hopeless window and dialog procedures and accelerator tables and whatnot - and menus and other resources that have to be hard coded to generate the right numeric codes to pass on. Windows doesn't have the target-action paradigm. Retool Windows for an iPhone and wait a few millennia for them to finish with their initial design decisions. Retool OS X for the iPhone and you reconnect the targets from the new controls with their new actions and you're in.
The new controls generate new messages - but the same generic message - an 'action' - is passed and used everywhere. It becomes a mold, a template, for the new code to fall into and size up to. It's not trivial but it is doable - try this on any other system and you'll see what you're up against.
Even the whole business of 'verbs' rings a bell. Alan Kay's prototypes weren't so much object oriented as they were action oriented; Xerox' other boxes were object oriented - so are all the other descendant GUIs in use today. With the possible exception of the iPhone. The idea isn't new - but like the mouse it's another example of taking something to market. Successfully.
Are there worms in the Apple? Oh sure. Of course. But the most annoying worms over the years haven't been inside the company - they've been outside it. Most engineers recognise the great contributions of Avie Tevanian and his name is probably revered inside the Loop today by more than the likes of Serlet and Tribble; but outside the Loop he was castigated ferociously by the 'we'll pretend we know better' crowd. Much like Apple today are being attacked by other elements of this same faction - disgruntled former employees.
Apple have in fact done two things right over the past ten years. And don't forget Steve once said the system would last ten years. And in a way the old system did - for this is a new system. It's not an upgrade.
The first thing they did right was buy the system in the first place.
The second thing they did - and it's an honourable thing - was move it up to 64-bit.
And even if they've more to do - kinks to iron out, default settings to get right so as to absolutely minimise the peanut gallery mumbles murmurs burps and screams - they're on the right track.
Cross your fingers, hold your thumbs, and knock on wood: right now everything's coming up roses and the system smells damn good.