Those who know me will back me up on this; I evaluate things fairly. You will never hear me say $FOO is clearly superior than anything else, and there’s no reason for anyone to use anything else. That includes Linux and Linux distros. I calls them as I sees them, and I do not feel that Linux is always better in every situation for every user, nor is one distribution/brand of Linux clearly the best for all situations. And I’ve been using Linux since Red Hat 4.2 in 1997 (I still have the disks).
I recently installed Ubuntu Karmic (9.10), waiting a few months after release as I usually do so the major bugs are already fixed, and ran into many more problems than I expected. I find this unfortunate, because one of the main reasons I switched from Fedora to Ubuntu is no longer valid. Some of this post is about this release, and some is about the state of Linux in general.
- The biggest failure of the Linux software base that is directly attributable to the Linux community is handling sound. A while ago, there was a change made in the kernel that made it much harder for programs outputting audio to cooperate with each other and access the sound services at the same time. Some developers (partially sponsored by Red Hat) developed Pulseaudio, which is supposed to proxy other programs accessing the sound services so multiple programs can play sound at the same time. Unfortunately, it was hastily designed, poorly implemented, and prematurely included in distributions. For the vast number of people who bang on their Linux box in a big way, running multiple applications producing sound at the same time (and that includes alert sounds), it fails regularly, and it needs to be killed and restarted. And it’s only getting worse. As of Karmic, if I’m watching something using MythTV, and try to play a video using something like mplayer or vlc, the video playing program just freezes. No output at all. Once I kill MythTV, the video starts playing.
- A close second is the video driver problem. Video card makers are highly secretive about how to interface to their cards, lest a competitor learn how they implemented certain features, so they don’t release open source versions of their full featured drivers. Most medium- to high-end video cards have two drivers that work under linux; the open source driver that works very well but can’t do 3D or compiz or some other functionality needed for many games and video programs, and the closed proprietary one released by the maker as a binary that must be rebuilt with every kernel update. Today there are several ways of automatically rebuilding the drivers when new kernels are installed, so that’s a lot better today, but because each chip set needs a separate driver, they take up kernel space. Lately, older drivers have been removed from the kernel, reducing Linux’s compatibility with older hardware. On a desktop you can just spend $30 on a new video card, but on a laptop, you’re stuck.
- The mouse configuration tool no longer has an option to disable the trackpad. Many people, myself included, find that trackpads often make the cursor move just by leaning on the wrong part of the laptop case near it. I have big hands, and always use an external mouse. The only reliable way I’ve found to disable the trackpad is to remove the kernel module from memory as root.
- ffmpeg, avidemux, and other tools have had certain codecs removed, some by accident and some on purpose due to licensing issues. As far as I know, though, the licensing hasn’t changed on those dependencies.
- The configuration file for X Windows (the GUI) xorg.conf, is no longer how X Windows gets configured. It just “figure it out” when you start it. Yes, the file exists, and if you put stuff in there it might listen to you, but it’s much more of an opaque process. Especially with mouse configuration.
- The only truly powerful and configurable CD ripper, Grip, has been removed. It hasn’t been maintained for a few years, but that’s because it works! No other ripper I’ve found is as configurable, and it has a great feature I haven’t found elsewhere: If a CD has different artists for each track, and the artist name is in the track name (“Artist / Track Name”), which is very often the case for compilations and movie soundtracks, you can tell Grip what the delimiter is and the order, and it will move the artist name to the track artist field. Very handy. The command line program ripit is kinda close, and so is the GUI program Asunder, but neither can get the track artist from the name (meaning two cut/paste operations per track), and Asunder doesn’t even add ID3v2 tags.
- The version of Banshee included shipped with broken iPod support. I had to add a third party repository to get the fixed version. This is what I referred to before with my reduction of love for Ubuntu. One of the main things that drove me away from Fedora is that setting up a functional system required the use of third-party repositories, some of which have conflicting versions and contents of packages, and some of which were actively at war. I don’t mind having to use Medibuntu in addition to the official repositories, but now I need separate repositories for Google Chrome, jEdit, Ubuntu One, Banshee,… As a side note, the main reason I moved away from SUSE was they implemented configuration programs that were backed by an opaque proprietary database that was way too close to the Windows registry for me.
- Typically when a Linux/UNIX system starts up, /sbin/init is the process that goes through the files in /etc/init.d and starts up all the background processes in the right order. Some distributions, including Ubuntu, have been moving towards Upstart, which is an event-driven alternative. In my eyes, this is a case of replacing a perfectly-working (and very important) system with one which is relatively unknown and more opaque. At least pulseaudio was created to solve a problem. Just the other day I was on the #ubuntu IRC channel (which is always very active), and someone asked a question about upstart. Not a single person answered his question.
Those of you who know me well know that I am not a passive whiner. When I see broken, breaking, or just suboptimal things, I get up on my soapbox, but I also do what I can to help fix it, be it submitting detailed bug reports, trying patches out for developers, or actually fixing it myself. Open source cannot survive without those many eyes also providing feedback. I encourage everyone to do the same.