We've been hearing about the 'year of the Linux desktop' for about five years now. At the beginning of every year, usually coinciding with a major release by one of the distributions, pundits come out in blogs and on tech news sites and declare that finally, after all these years, Linux is going to take its rightful place alongside Windows and Mac in a trio of absolute goodness and light.
But when I turn on my grandma's computer, it's Windows or Mac I see and not Linux. It's never been Linux. My grandmother doesn't even know what Linux is. Neither does my mother or her friends or very many 'average' people I know. It's a bit hard to see how Linux is going to take over the desktop when Joe Consumer doesn't even know what "a Linux" is, isn't it? And that's why it's so silly to keep declaring year after year the year of the Linux desktop while ignoring the glaring problem that keeps that elusive goal at bay: software.
Before distributions like Ubuntu and Linux Mint came along, Linux faced a tough hill to climb. Not only was most of the software people wanted absent from the platform but the damn thing looked ugly and didn't support half of the hardware on the market. Then along came Ubuntu and its ilk and changed all that. Now, it's fairly easy to get new hardware to run on a Linux system and the user interface is as polished, if not more so, than Windows or Mac. But the software still isn't there.
I can't count the times I've heard professional Linux software developers say such silly things like "I don't care if anyone uses it, I program to scratch my own itch!' Obviously, while some programmers do indeed develop software just to scratch a personal itch, having this general attitude permeate the community as a whole is an obvious problem. If no one cares if anyone uses the software or not, they don't put as much work into producing a polished, slick, easy to use application. Where does that leave the average user? On Windows or Mac, that's where.
Cononical and Mark Shuttleworth have taken a lot of heat lately because of the amount of actual code the company contributes to the Ubuntu distribution. But Cononical has contributed more to mainstreaming Linux than any other company in the market because they've focused on where it counts: marketing and the user experience. Ubuntu looks good - really good - and Cononical has put a lot of money behind marketing it as the distribution your grandmother could use and, you know what? I could actually see my grandmother using it!
Mark Shuttleworth understands the importance of creating good software. He understands, and pushes it down through his organization, that functional is not enough. People will choose a beautiful piece of software that kind of meets there needs over a crappy, ugly, piece of software that meets them fully. The experience matters as much as technical correctness. In fact, Cononical has an entire team dedicated just to the user experience. That's what they focus on. That's it. Nothing else.
I've long held that the main thing holding Linux back from the mainstream is software. In fact, it's not just the main thing, it's the only thing. Joe Consumer doesn't care that there are thirty-seven versions of some scientific tool used in an obscure academic discipline that he's never heard of. He doesn't care that your cash flow management program technically works after he's had to spend an hour tinkering with scary looking .conf files that, for all he knows, might just break his system. No, Joe cares that he can't just put in a disc, click a few buttons, and start using his software. He wants the Windows and Mac experience. He wants to spend more time using the software he bought or downloaded than configuring it or downloading dependencies because the developer didn't include them so that the user could experience 'freedom'. Users don't want freedom. They want working software. When your user installs your software and he has to go and download other things before it works, your software is broken in that users mind. It's not freedom, it's broken.
I don't believe there is any room in the Linux world anymore for software developers who 'don't care'. You should care because the more people adopt the platform, the more hardware vendors will support it, and the better the platform will become. Linux has moved beyond its pot smoking free love days and has grown up into a rather respectable adult.
It's time Linux developers do the same thing.