I know – I haven’t been running Ubuntu long enough to be anything near an expert on it. That’s part of the “user experience” this post details. I can’t afford to spend enough time with Ubuntu to learn to compile my own drivers, probe stuff, find the right header files to compile stuff…
I like Ubuntu on my laptop (IBM T42p). Everything, except my Bluetooth just works – and it works well. (Note – my Bluetooth didn’t work on this laptop with Vista either). I like Ubuntu on my laptop. It’s comfortable, and reliable, and it just feels pretty good. I didn’t have to tweak much to get it to work – laptops are pretty well-defined in what hardware they have, and it’s pretty evident that someone in Ubuntu development has a laptop like mine. Ubuntu works very well when the hardware is pretty
But what about a home-built desktop machine with a variety of cards that may never have been combined the same way I have them combined? Ubuntu doesn’t fair anywhere near as well. My desktop install of Ubuntu left a lot of my hardware non-functional – my USB fingerprint reader, my Bluetooth, my scanner, my TV tuner, my PCMCIA adapter, my FireWire external drive (and internal card). None of these were recognized and configured by the Ubuntu installer. Subsequent “fiddling” got most of these things to work, but not all. Not the TV Tuner, not the fingerprint scanner. Not the FireWire drive.
What Linux in general is missing is something Microsoft has probably spent millions if not billions of dollars on – the Windows Hardware Quality Lab – WHQL. Where Microsoft evaluates and tests drivers and hardware for compatibility and has generated a huge database of hardware and driver data. And corresponding data (I would imagine) of what devices might cause problems for other devices. This is why most of your hardware is just detected and just works under Windows (most, I said). Microsoft has a centralized database and a well defined system for manufacturers to get their hardware qualified, and their drivers improved.
The Linux community is fragmented – there are many versions of Linux – Ubuntu is just one of them. Each caters to a different audience. Everything from the Desktop Manager to the targeted end user of the machine (Graphics, Net Admin, etc) appears to have a flavor of Linux out there. The community is spending time on window-dressing – trying to find their niche — building pretty Windows-Like GUI’s, focusing on one aspect of computing – instead of coming together to enable a common platform of qualified hardware and software in a centralized database that they can all benefit from. The Linux community needs a hardware abstraction layer and related software database that any and all versions of Linux can draw from so that the end user experience is as simplified as possible. As long as I have to compile a driver to get something as simple as a four year old TV Tuner card to work, it doesn’t matter what version of Linux I am running – my experience is going to suffer. It doesn’t matter how cool the Ubuntu sounds are, if my sound card isn’t properly detected. It doesn’t matter how nice the graphics are if my monitors aren’t detected and functional.
Linux needs a Global “Linux Update”. Where qualified and tested binary drivers are available to users, regardless of the Linux distribution they are running. The hardware just has to work, and the software needs to be there to support it. Qualified software. Tested software – compiled for my machine. NOT compiled by me. Not tested by me. Not tweaked by me. Compiled, tested, and tweaked FOR me.
Until that happens, I think Linux will stay where I see it now – a fairly smart OS with an extremely smart user-base. Until it’s an extremely smart OS that can cater to a fairly stupid user-base, it won’t appeal to the much of the greater user population. And I know that’s part of the appeal of Linux – the “OS for Smarter People”. But that’s not beneficial for the Linux community – they must address a lower common denominator to gain broader acceptance.
And yes – I do believe it’s all about the experience in getting hardware to run. Most people can learn a new OS to access their hardware (click there instead of here) – but most aren’t able or willing to learn to be a programmer, or to compile, or to remember what 65 text files all do just to be able to use their scanner, Bluetooth and Wireless LAN.
Linux MUST fix this issue with hardware/software or it will remain forever in the realm of the uber-geek – and Grandma will still be running Windows, because face it – even if it crashes sometimes, the hardware usually just works with the software. And I’ve never had to compile anything to use my hardware under Windows.
Call me a wimp if you want – forcing me to compile drivers won’t win me over. And if you can’t win me over, you’ll never win Grandma over. I can deal with some low-level surgery – but not when it costs me half a day for something that is just for entertainment (my TV card). I don’t have the luxury of spending that time learning about the entrails of Linux. I shouldn’t have to. And until I don’t have to, Linux will be a fringe OS. I DO appreciate that Linux let’s me tweak everything – but it shouldn’t force me to tweak anything.
I’m going to continue running Linux on my Notebook (because it just works out of the box). I’m going to try moving my server over to Linux, because it’s an old machine, and it only sits their feeding my blog drivel to you – it runs an Apache Server and PHP and MySQL. No need to be running Windows on it. I could free up a lot of resources there by running Ubuntu. And there are no “special” hardware requirements.
But my main desktop – the one I spend all day on every day? I think it is going back to XP – no, not Vista (at least not now).
Why? Because I need it. I need it to work. Tomorrow. Not when I get time to learn how to compile Linux drivers, probe video capture cards, etc. It’s my bread and butter machine. And Linux isn’t delivering for me on that platform. Not yet anyway.