wiki:SoftwareEngineering/LinuxAlwaysAbridesmaidNeverAbride

Linux - Always a Bridesmaid, Never a Bride

May 05 2009

It had been a little over 4 years since I last tried out Linux. That experience wasn't half bad, but I didn't get much in the way of use out of having Linux on one of my boxes - I wasn't doing any Linux specific development and there didn't seem to be any particular programs of quality that I wanted or needed to run. One of my main uses of a computer is to play video games and Linux is a poor choice at best for video gaming compared to a Windows based machine.

But with my growing interest in the audio side of game development, I figured it wouldn't be a bad time to give it another shot. I had read that there were quite a few programs worth trying out, some of which are in use by semi-pros and amateurs in the field of digital audio / music creation and synthesis. I first tried out Ubuntu 8.04 - it wasn't too bad, but I ran into issues with the onboard network card - it just plain wouldn't work. I spent several days troubleshooting, reading various manuals, howtos, guides, forum posts, etc but no dice. I figured I ought to try out another distro before throwing in the towel and going back to WinXP. So, it was onto Fedora Core 10. Still no dice. I then slapped in a network card I scavenged off an older machine, disabled the onboard network card and was off to the races.

The installation was not too bad - odd thing was that it detected my PATA harddisk as the primary disk and the SATA one as the secondary; this is the opposite of what is specified for boot order in the BIOS and also different from what is reported by WinXP during installation. Still, got past that easily. The rest of the installation was pretty smooth and I had an FC10 Linux box up and running. That's when the problems began.

Where money is not a motivating factor, ego is.

In the world of open source / free software, most folks don't typically get paid to work on various projects - they do it primarily due to self-interest, either altruistically or not. Either way, since there isn't much in the way of monetary compensation, egos often tend to run amok. I saw a classic example of this when I ran into issues with IPV6 on FC10. Here's the long and short of the problem: One of the common libraries (glibc) that shipped with FC10 broke compatibility with well known and commonly used existing programs (firefox, wget, traceroute, etc) that are IPV6 aware. Essentially, name lookups would fail resulting in these programs not working. You could get around that in firefox by disabling IPV6 via an internal, hidden setting that most folks wouldn't know about or couldn't figure out (since they couldn't get to the internet) unless they had another computer. One would think that something as fundamental as this would have been caught in QA, but one would be dead wrong.

It wasn't that the issue was not pointed out; in fact, a beta user filed a bug one whole month before the release highlighting the problem. It was brushed off as an oddity by one of the core developers, Ulrich Drepper. Further more, the guy showed rather poor judgement in a bug report discussion about the whole thing, claiming that the problem was not severe enough to be patched. There were about a dozen folks clamoring to convince him with facts that the issue was severe and had to be addressed immediately. See this attachment for details (original), if you have the patience to read through it. It's not that Drepper is technically wrong - it's just that being technically right isn't the be-all and end-all of it. If your software (the core applications for the OS) doesn't work for your users, they're not going to use your OS. So, Linux loses.

Some additional blemishes are that the solution to this bug is non-trivial - certainly not something that someone without a fair amount of knowledge and expertise could figure out. I'm not a Linux expert, but I consider myself technically savvy and it took me more than a day to figure out that this was the bug I was running into. Most folks were content to disable IPV6 in firefox and get on with their lives. Before I forget, this bug renders the software update programs (yum on FC10) inoperable. So, you can't use yum to get the fix.

Here's what needs to happen to get the fix: First you must fix firefox, so you can get on the "interwebs". You then need to locate the patched library packages, which is like navigating a maze - in the dark... without any light... and some minotaurs thrown in for good measure. Once you find the page (original) that lists the packages, you have to figure out from some other source(s) which of those patched packages actually apply to your installation. No, it's not obvious. Once you figure that out, you download the packages and install them using rpm - not yum, but rpm. Then everything starts working and you can get system updates, etc.

Would your mom go through this?

Or the more obvious question - would you put your mom through this? I wouldn't - my mom would kick my ass if I didn't get her computer working in 10 minutes, maybe 15 if she felt generous. :-)

Yes, I know Windows has problems, but with money being a motivating factor, Microsoft gets most things right for most people. WinXP is a very solid operating system - was when it came out as well and has only gotten better. Yes, Vista is a slightly different story, but if you were on the inside, you'd know that most issues are due to bad drivers supplied by hardware vendors. Besides, SP1 makes it a fabulous system to work with for the most part.

Linux is just not ready to go mainstream for desktop use - not only because of debilitating bugs, but because of the attitude of the development community towards its users. Sad.

Hot off the presses: The just-released Ubuntu 9.04 distro has the same dns resolver bug too (original). Yay!

Last modified 3 years ago Last modified on Feb 18, 2016, 5:36:18 PM