There is this great line in the for kids animation movie "flushed away" where "le frog" (voiced by Jean Reno) tells "the toad" to "give it rest, cousin" referring to his self-destructive obsession to get rid of the rats.
I was reading Mark Shuttleworth's blog recently, in order to get to know the guy a little bit better. He founded "Thawte", made a fortune from that, went to space in a russian shuttle and dates models in the UK. He is smart, motivated and very popular. More recently he is the driving force behind the highly visible Ubuntu Linux distribution. There is a great series of a dozen posts on his blog on the topic of making Linux (read Ubuntu) ubiquitous on the desktop.
To me it was yesterday's news. Then yesterday there was a thread on slashdot on that very topic and whether Ubuntu had finally arrived on the desktop. So I decided to dig a bit.
The pictured is checkered. Many reports say it is there and easy to install and use, even pretty with GUI's like Beryl. However, a vast majority still report having to hack xorg.xml files to get the screen to work.
But here is the thing that bothers me, in fact makes me sad: THIS MESS HASN"T EVOLVED MUCH IN 10 YEARS!!! In 1995 when I was working on my PhD thesis I installed slackware linux on a 386 machine I had at home. I had fun hacking the Xorg.conf file, calculating refresh lines, it was a geeky thing to do. I was 25, a grad student, and I wanted to use LaTex on my PC to write my physics PhD thesis. I had discovered Linux at MIT the year before and I was really high on it. I was an evangelist.
I am sad, because I percieve all the love and passion and efforts of legions of geeks going after doomed efforts like "Linux on the desktop". Back in 1999, the debate was already raging. Linux was going to overtake MSFT on the desktop. To me, however Linux on the desktop was dead on arrival. A misguided effort. The other counter trend I saw was that Java had a bad rep because it wasn't open. It was evil.
BTW putting the two together is what gave me the "ah ah moment" to start JBoss. Linux was doomed on the desktop but was going to rule the serverside thanks to its Unix legacy and a little language called java. Today most of the Linux business is on the server side, java is the fastest growing segment. I feel both vindicated and sad at all the wasted energy. All the misguided idealism when it was right in front of our noses.
Well, the sillyness is still going on today... GIVE IT A REST ALREADY. Read my french lips: WE SURRENDER!
Look if you are working on desktop linux and you are offended by what I just said, then please just tune out, go somewhere else, and keep on trucking because I am about to list why I think it is doomed in the short to mid-term. Don't listen to me, please. I am a naysayer. God speed to you and good luck. I hope I am wrong. Thank god I didn't listen to silly criticism and naysayers back when I started JBoss. Do the same, don't do what I say, do what I did.
Here are the reasons I am down on Linux on the desktop.
1- Driver support, windows hegemony. Look guys, I am not upgrading to Vista, not because I don't want to, but because I can't. The reason? Vista is not YET supported by my high end audio card which I use to DJ. It will be, eventually, but VISTA itself is at the top of their support list and then they are slow to support it. Then comes MacOSX on their list. Then, maybe, ONE distribution of Linux.
2- The economics of monopoly are tough to beat. Look folks, windows and linux on the desktop have similar TCO. Depending on the environment Linux can be cheaper but not by much. No one argues that Mac is more expensive than windows (as a BSD derivative). So the incentive on the user is small if not NEGATIVE. The incentive on the software and hardware manufacturers **IS** NEGATIVE. Adding another distribution to the mix is a costly proposition of port and support, there is NO gain, just COST AND HEADACHE. Even mighty DELL is mostly saying NO to new linux pre-installed because of this economic reality. My audio card provider is struggling to support the various versions of windows, much less "afficionado" hardware. Another way to say this is that vendors, both hardware and software WANT A MONOPOLY, they want a SINGLE distribution to support. That is just economic common sense as long as the supplier of that monopoly doesn't abuse its position, this is economically optimal.
3- The corollary of 2, limited in scope to Linux is that for "linux" to be a contender you need ONE distribution, unified. Forget fighting mac and windows, first clean the house. Linux has got to consolidate to ONE army and THEN it can start thinking about attracting vendors and users and fight the real war. LSB was touted as that "standard base" for distributions long time ago. The commnity is aware of the problem but really cannot do much about it. LSB was a partial flop and then add the various little package wars and the lack of standardized deployers and you get a vietnam of software distribution and installation. The war is internal at this stage. And let's face it, the linux/free crowd is ALL about choice and they LOVE their 85 little distributions and their different flavors, and their little packaging (RPM/Debian) and their little files in their little positions with slightly different names. IT is part of the charme "vive la difference". DO you really see anyone getting beyond their technical egos and adopting someone else's distribution and indiosyncrazies? maybe... probably not.
Note that this is true of the desktop but less so on the server side. On the server side, for corporate use, the non-sense has died down by corporate standardization. User driven. RHEL has emerged as that ONE platform with 80% marketshare. That is the consolidating dynamic I talk about. I already argued this positive loop in server side OS when I discussed Oracle vs RedHat. They can't get their shit together to put a distribution together forget recruiting partners. In fact the only place they have a praise of working, and I will come back to that, is as a "oracle appliance".
Forget the server side, which is owned by RHEL right now, and let's go back to client side. If there is one distribution that can unify them all for client side, it may very well be Ubuntu. I was disappointed to see Mark apologize to the Suse guys in one of his posts for even ///proposing/// them to join their efforts. See what I mean by unsurmountable egos? He is making the right call to unify but who is going to unify behind someone else in a FIERCELY individualistic field? The undertone of the whole conversation is Mark: "Surrender! now!" Suse: "we shall never surrender". End of script. Freaked up beyond hope.
Obviously all of this is based on the economic proposition that you need to attract software vendors and hardware vendors. It has happened on the server side with RHEL because the user community, the corporation, imposed their choice. It hasn't happened on the client side, because the user community, "the geeks" would rather die than surrender. But is there a world where software and hardware support are irrelevant?
Absolutely, and it may be the most promising development in the next coming years. ALl of the dedicated devices, think consoles, phones, MP3 players, web stations, media centers, dedicated business apps and the like DO NOT CARE WHAT OS THEY ARE RUNNING. This is the world of the "gizmos" and "appliances".
Ironically one of the posters on the slashdot Ubuntu thread mentions that the three persons he has moved from windows were "only using the web". No wonder, and for that, Ubunt is over kill. I suspect that a device WITHOUT EXPOSED OS, will emerge in that "grand mother"/couch potato category where you can IM/Chat/google/mail/surf/porn/skype/DVR without having to even KNOW what an OS is. The extensibility of the hardware and software, what makes PCs so attractive, versatile and extensible become a secondary hinderance. If gizmos cost $100 and a PC $1500 then 4 little dedicated devices may be more intuitive than one generalized platform. You don't want to install peripherals and you don't want to install more software. That market is big, early but big methinks.
When I was at SUN I was evangelizing the "javastation" and it was the first time I really got thinking about these OS gizmo dynamics. The javastation was a freaking dog, it didn't work, period. The furthest I got was by trying to position it as a SAP dedicated client machine we could run in production environments where it wouldn't break down. It was a good idea, too bad the buttons didn't unpress (talk about buggy) and too bad it cost $2000 for a 80Mhz machine :) it died quickly.
The whole "appliance" thingy, ironically makes more sense on the client side. For some reason a lot of folks are pushing server side appliances in a age of virtualization. It seems completely stupid. Can someone PLEASE explain why we would tie hardware to software when we have virtualization? However in the context of clients and grand mothers and security it makes a lot more sense. Witness TiVO. The TIVO box was one of the first LINUX successes. ANd who cares it is Linux? No one, that is the point of the dedicated boxes, that you don't care what is the OS. Even in the embedded market, Linux seems completely fragmented with vendors peddling their proprietary extensions and development environments.
Oh well, this post is too long already. It is hard to be negative in a way. I was never born a critic, but in this instance, I have been thinking the same for 10 years now, and shit hasn't moved.
Give it a rest already.