Mike has ditched Linux for Mac OS X. His blog post and most of the comments are quite measured, which is nice. A lot of Mike’s criticisms are probably quite valid too. However, he is comparing quite different things – a complete solution purchased from Apple with an unsupported and free software install on Apple hardware – call it Apples and oranges if you like.
How Apple works
Apple sells you hardware that they design and specify and they include software for you to run on that hardware. It works, mostly, very well. If it didn’t then they would really be failing – they control everything, know exactly what they need to test with, etc, etc.
How Microsoft works
Microsoft sells you software with basic hardware requirements. They throw in a few drivers for some popular hardware, but mostly your shiny new PC comes with Windows and drivers from the manufacturer already installed. The manufacturer only has to test that their small range of hardware works with Windows and their drivers. Having tried to install a generic Windows XP on a 5 year old laptop I found that I didn’t have:
EDIT: This was a few years ago when XP was still current – I was comparing an XP install that included the latest service packs (i.e. the latest software from Microsoft) with a contemporary Linux distribution.
- Wireless connectivity
- Graphics above 600×800 pixels
- Wired network connection
- Working modem
- Suspend or hibernate
- Working ‘special keys’ (volume, screen dimming)
Vendors who sell you add on hardware for your PC supply it with a little installation CD that makes sure it works with Windows for you.
How Linux works
A very few vendors (NVIDIA, for example) write proprietary drivers that work quite well in all modern distros. Installing them can however be a bit of a pain. Some vendors (AMD, Intel) work with upstreams to get free software drivers included in the kernel (or X.org, Mesa etc). Many vendors ignore Linux entirely and hardware support depends on someone else adding it to the kernel (an interested distributor such as Red Hat, a kernel hacker whose hardware doesn’t work). This works incredibly well, though still not well enough. On that same five year old laptop with Linux:
- Wireless works out of the box (some distros need firmware download)
- Sound works
- Graphics work fine at full resolution and with 3d acceleration
- Wired network connection works
- Modem doesn’t work
- Suspend and hibernate both work
- Working ‘special keys’ (volume, screen dimming)
Linux has better hardware support than Windows (certainly than XP when that was current, I can’t compare directly to Vista or 7). However, hardware has better support for Windows than for Linux. Apple exist in their own magical little world full of complete control.
Some vendors will sell you Linux-friendly hardware and even pre-install Linux for you. However, these tend to be quite generic boxes – more or less just a homebuild that someone has put together for you. It is unlikely that the software has been extensively tweaked to complement the hardware.
Doing the ‘right thing’
One thing Mike talks about is that his Macbook never loses data when he suspends it and leaves it until the battery runs out because it hibernates instead. Well that’s cool. I don’t know whether that needs some special hardware hook to realise the battery is going to die and transfer the computer state from RAM to the hard drive (if so there’s not much we can do about it) or whether they are just doing something clever like hibernating and suspending at the same time – so that the current state gets copied to the hard drive and RAM when you close the laptop lid and if the battery dies it just comes out of hibernation when you restart. That might be implementable, but hey, Apple probably patented the idea 😉
However, this could definitely be done by a real Linux hardware vendor – a manufacturer who says “Hey, we’re going to take complete control over hardware like Apple does, but we’re going to run Linux on that hardware. And that hardware will be just as sexy as anything Apple has ever made. And if anything doesn’t work quite right, we’ll fix the hardware or we’ll fix Linux”. It requires a vendor to take a bet on Linux, to accept that users might try and put Windows on the machine, but not really care whether that works – in the same way that Apple don’t care whether you can install XP on your Macbook and Sony don’t care if your VAIO will run Linux. Then the vendor could customise their KDE Plasma Desktop to take full advantage of the hardware – knowing that the graphics chip and the drivers for it really did support the features that were being used – and commit fixes for anything that doesn’t work properly. They could tailor the power usage to the hardware and disable unnecessary services and polling.
Then we could compare Apple and KDE (with a customised, tweaked, polished version of Plasma Desktop and the apps) to see who makes the best user experience. Mac users in my workplace are already impressed by my Plasma Desktop, but not by the big, grey, noisy Dell box that powers it, or the ugly Dell keyboard. With Apple, you get the whole package: nice hardware, nice software – working together.
This is a world for the consumer, where the manufacturer should deliver the whole package and make sure everything works – in the way that your Apple iPhone works (unless you hold it the wrong way…), that your HTC Android phone works, that your Nokia N900 works. The trouble is that Linux desktop hardware vendors tend to go for price competition and in any case it takes serious money to develop something really cool – you need your own manufacturing process rather than taking something off the shelf.
Take Open-PC as an example. The first product looks fine. I could build something similar myself and probably do it cheaper, but I know this has all been set up for me, has been really tested with Linux, has support… For your average consumer who doesn’t want to build their own PC it makes a lot of sense – if I needed a desktop PC right now then I would give it some serious consideration myself. The community involvement is great too. But it has a generic (though nice enough) case and is not really sexy. Fitting it in some really sleek, expensive looking case would add to the price, perhaps by Euro 30 or more, but it would change the selling proposition: this is not just a computer for those of you who want a Linux computer. This is the computer you want to buy, period. Asus got that, with their eee-PC: here’s a use case, here is our solution to that use case and by the way it’s the best one out there (sure it runs Linux, but you don’t need to care about that)
Make some real Linux hardware, better quality and better presented than anything from Apple, with a Linux distro and Plasma Desktop tweaked to work perfectly with the hardware and sell it as the ultimate home computer. It would take money (big, established vendor money) and balls (no one ever got sacked for selling Windows, you might for this) but maybe, just maybe, you could be the next Apple. But free.