静是从容,淡是境界
分类: LINUX
2006-04-19 22:56:41
I am an ex-Microsoft programmer of 10 years who hadn’t spent 10 minutes with any Open Source code till I left Microsoft–which is actually very typical for MS employees.
After leaving 1 year ago and spending it with Linux (most of that time with Ubuntu) I’ve gained tremendous respect for the Open Source world as a whole but more than that, had an epiphany that Linux on the desktop is 99.999% ready to go. Linux is lean, stable, polished and extremely rich. All of the pieces needed for world domination on the desktop are there. If every Microsoft employee installed Linux, the attrition rate would double–which would be considered a catastrophe. If Bill Gates were to install Linux, he’d hire someone to smash one of his plasma TVs.
When I first investigated Linux, many of the obvious stuff I thought would be problems were not:
In fact, Linux hasn’t just reached parity with Windows, it has significant functionality that Window doesn’t have:
An important point here is that Linux already has all the needed desktop features. What is holding it back is not features anymore, but bugs. Here are a few of the bugs that I see on my one English install: (UPDATE: I could probably file 50 bugs if I had the time and expertise and had a clean room setup to repro them in)
These things are problems, but most are really just bugs. For example, the kernel and shell UI support hibernation, but it doesn’t yet work on many laptops–each problematic chipset is a bug. Gnome can detect and mount my NTFS partition and it actually understands the complicated NTFS format, but I am forced to jump to the command line to view my files. These problems can usually be worked around by a Linux guru but they shouldn’t exist and in many cases are just tiny bugs breaking a scenario from being easy.
My diagnosis is that the problem with Linux is that it doesn’t have anyone pushing to get the newbie bugs fixed first. At Microsoft, we had Program Managers and one of their responsibilities was to be customer advocates to prioritize the bugs for the devs to fix. In many open source groups, it sometimes appears that bugs get fixed when the dev decides to work on it, not because an important user scenario is broken. The Wi-Fi tool was broken in Gnome for many months, but the bugs just sat there languishing in the database. Microsoft or Apple would not have shipped a Wi-Fi UI that was completely broken in that way.
I believe the Linux development process overall is working just fine, shipping high quality code on a regular basis, so I think the problem is simply an issue of socalization. Many bug databases allow people to vote for bugs, and that might be an interesting democratic way to go about it, but I also think that having more focus and vocal user advocates would be enough.
One of the reasons why I like Ubuntu is that because it is being run on a wide variety hardware by newbies like me, it is building up a knowledgebase of these issues.
How much needs to be done? My estimate is that Ubuntu needs on the order of 10,000 bugs to be fixed to get that last .001%. If you want to make your own number, here one place to start: . How long will that take? If we assume it takes 1 day per bug, then 10,000 bugs is 50 man-years. By Microsoft standards, 50 man-years is tiny: Windows Vista will probably have 5000 man-years of effort beyond Windows XP. In other words 10,000 bugs is 1% of the effort MS will spend on Vista.
The bad news is that while 50 man-years is small, it is still large for an organization like Ubuntu which I estimate has the equivalent of 30 full-time devs. In addition, many of their bugs exist in other codebases manned by volunteers.
How and when those bugs get fixed, or whether another distro will get there first, I’ll leave as an exercise for the reader, but I do feel that the big guys should jump in a bit and help out. IBM claims to be a big supporter of Linux, but their employees all run Windows, which shows you what they think about Linux on the desktop. It is a shame because IBM could lose 50 employees under the cushions of their couch.
Linux on the desktop is very, very close and can happen as soon as we want it to.
Update: Only 21 Diggs– it?
Update 2: The 10,000 bugs number is just a back of the envelope calculation. I looked at the Ubuntu bug database, but also at the kernel, Gnome, and OpenOffice bug databases as well. I looked at Debian’s ‘Release-Critical’ bugs, but think I could ship with all of them–there may be wisdom with Ubuntu just snapshotting Debian-unstable to start a new release.
I actually think fixing just the right 1,000 bugs would move it forward a huge amount for me at least, but I still imagine that running Ubuntu on 100 million different desktops around the world would bring out more issues with a much wider variety of hardware, software, .DOC files, other writing scripts, etc.
Another approach: I think I could file 50 Ubuntu bugs, yet I don’t believe that my testing is 1/20th of the Ubuntu codebase but I do imagine that it is at least 1/200th.
When I realized that Ubuntu is just getting going, that many people don’t file bugs, and that 10,000 bugs is a relatively small number, I quit work on estimating. If Ubuntu could fix the right 10,000 bugs, it would be a superb system indeed.
Update 3: I just posted an Open Letter to the new Debian Project Leader about the ‘complicated’ relationship between Debian and Ubuntu which you may enjoy if you liked this.