Sunday, October 25, 2009

Reading the replies to this comment (and the ones around it) in Slashdot, it is somewhat shocking to realize how short sighted  most posters are - considering these are Linux users, which we should assume means something. These people are content to reinstall their OS every six months and couldn't possibly imagine why one wouldn't want to, or why not all software in existence can be in their favorite distro's repository.

The problem is not that these people exist, but that apparently they are the target audience of popular Linux desktop distributions. This worries me. At least with Windows you know that there is a "design committee" somewhere in Redmond, trying to do the right thing; they don't end up doing it, but they at least try to approach it intelligently. What am I saying - apparently they do succeed, and the proof is in the pudding - 98% of the desktop market share.

Recently there were discussions in Slashdot about PulseAudio. The latest attempt to "fix Linux sound". Apparently OSS was not good enough, so it was replaced with Alsa, which wasn't good enough, so Arts, Esound, etc, were created, and now finally PulseAudio to rule them all. In the meantime Windows 2000 (and perhaps even Windows 95 and Win 3.1??) had better sound than Linux today. But I digress.

What really made an impression on me is the admission by Pulse Audio's creator that its mixer controls can't possibly handle all different sound cards, but that at least it was an improvement over the existing Alsa mixer control. To this I say, if you aim low you land low. Let's think for a second. Why isn't this a problem in Windows? How are all possible sound cards handled there?

BTW, here is a hint: it is not only the sound.  Exactly the same limitation exists in Linux printing. While printers might have tons of special functionality (cleaning, adjustments, manual double-sided printing, etc) available in Windows, this is never available from CUPS in Linux.

The answer is, in Windows the manufacturer can ship a custom applet, designed specifically for the capabilities of their hardware, together with the driver. Who knew that instead of trying to handle all possible cases in the OS, it is possible to push the burden to the manufacturers and let them take care of it.

Homework question: why doesn't this obvious solution work in Linux, and why does this mean that Linux is destined forever to fail as a desktop.