Busy week! On Monday/Tuesday/Wednesday I went on-call for Google Earth. Fortunately nothing much went wrong (that wasn’t of my own doing). We now have very cool Wikipedia integration, and have connected the app to a database of location photos. Sweet!
On Wednesday morning I got up at 5:30 to give a presentation on autopackage to the LSB meeting in Berlin. Unfortunately I wasn’t able to stick around and hear feedback. On Wednesday evening I flew out to Oregon for the OSDL Desktop Architects Meeting. This was a combination of cool and depressing. Cool things: meeting Paul Davis of the Ardour project at last. Uncool things: hearing (and speaking about) a litany of essentially unsolvable problems with the Linux desktop. Breakout sessions supposed to target these things came back with the conclusion “cannot or will not be fixed”.
It seems now that as desktop Linux has matured, all the easy problems have now been solved, leaving only the hard ones left. 3D composited desktops? Easy. Desktop search engines? Easy. Solving the 3rd party driver problem? Hard. Solving the problems ISVs have? Hard.
To me, this says a lot. The remaining problems discussed at DAM 3 are not, in fact, technical. They are all social. Hardware manufacturers don’t want to wait a year before people can use their hardware, but the kernel developers won’t compromise (even for open drivers). Distros don’t want to “ossify” the platform by leaving old libraries in the base install sets, but ISVs don’t want to port apps between each distro release. Audio developers still can’t agree on a simple way to solve audio mixing, but it’s considered a basic feature the desktop must have.
The list goes on and on. The amount of time spent discussing print dialogs, of all things, was astonishing and disturbing – zoomed in so far the big picture becomes lost, it seems the more insignificant the problem the more community brain cycles it takes.
But there is a bigger point, that I thought about bringing up at the end of the meeting but then didn’t have the heart to do so.
If every hard problem discussed at DAM 3 was to be somehow magically solved by tomorrow we would at best have created something competitive with MacOS X. However, MacOS X is not at all competitive.
Have you ever wondered why Apple has no competitors in the integrated-hardware-OS space? It’s because it’s a fundamentally insane business to be in. Nobody in their right mind would want to produce something like the Mac today. The expense of implementing a desktop OS from scratch is mind-blowing. The risks of losing ISV support are terrifying. Most of all the rewards are too small.
I say the Mac exists only because Apples history requires it to exist, because Jobs requires it to exist, because Apples shareholders require it to exist. It doesn’t exist because it actually makes sense, as a project.
But how can I say it doesn’t make sense? Hasn’t MacOS had a huge impact? Is it not potentially the inheritor of the Windows throne?
I don’t believe so. MacOS X is no longer the new and hopeful youngster it once was. No longer can it claim to be a serious challenger to the Windows desktop. It’s now been years since it first came out, and its main achievement has been to keep the Mac platform alive. It has failed to win significant marketshare, it has failed to truly revolutionise computing (sorry but I don’t consider 128×128 icons to be a revolution), most damningly of all it’s completely failed to gain traction in business and as a result, the size of its userbase remains tiny and inconsequential.
Windows has won, completely and utterly. It has fended off two challengers with key advantages it couldn’t match: in Apples case, seamless hardware/software integration combined with a fresh start. In the case of Linux, the open development model that made financial failure impossible and broke the catch-22 of “where does the software come from?”. In both cases, those advantages were not enough. Windows remained and even extended its lead, despite simultaneously stagnating as a project.
How did that happen? Put simply, people always over-estimate the importance of something new and always under-estimate the cost of removing something old. A software ecosystem is like a pond. If you keep draining it to clean the water, you’ll kill most of the fish swimming in it. Those fish will never breed and so the fish population will never expand. This is the problem Linux has today – the constant churn massively increases support costs for a Linux port. As a result, many companies decide not to bother (sometimes even after they did the work of producing the port!), and so there aren’t many ISV applications, and so it always seems like the cost of yet another API break is minor. It’s a self-fulfilling prophecy.
Apple are trying to drain the ocean. By creating an alternative to Win32 and asking developers to use it, they are throwing out the old and replacing it with ….. something pretty much the same. C++ changes to Objective C, CWindow changes to NSWindow, but ultimately the bread and butter of desktop applications doesn’t change. It’s still boils down to putting widgets in windows. This then is the key to their failure: the benefits of the Mac are trivial and the costs of moving our infrastructure to it are enormous. No matter what Apple might like to believe MacOS is not a big enough leap over Windows, it’s not revolutionary enough to justify rewriting all that software and retraining all those people. Neither is Linux, hence our problem.
You could argue that the goal of “Linux”, whatever that is, is simply to be free and not to necessarily be an improvement. RMS would argue that. It’s a fine argument and a fine position to take, but it makes OSDL and the DAM meetings pretty much irrelevant because they are focussed on solving practical usability problems. It also means you can’t ever complain when your laptop fails to suspend or some cool new app comes out that you can’t run.
To stand a chance of displacing Windows, you must build something fundamentally better. Not a little bit better, not even a lot better. Something fundamentally better. For a certain class of programs web apps were fundamentally better and over time huge amounts of software were indeed rewritten on top of the browser. That never happened for operating computers as a whole though. So … what might such a thing look like? Well, it’s not likely to be an installable operating system. More likely, it’ll be some new kind of computing device based on many of the technical innovations of the past 20 years – digital paper, 3D mice, provable type systems, whatever. I don’t know what it might look like. But when a significant number of people own both the new device along with a Windows based PC, and never think anything of it, you know you’re winning.