The flames have mostly died out and the smoke is clearing: The response to the original Linux's Achilles' Heel article was astonishing.
Many readers offered posts that were helpful, thoughtful, and informative. My sincere thanks to all who wrote in that vein! Other posts were, well, somewhat less helpful, and revealed deep misunderstandings about my original article. If the fault were mine--if my words were unclear--then I apologize. But I suspect that, at least in part, there may have been a problem on the receiving end of the information exchange, at least among some of the more fanatical Linux supporters.
For today's article, I've read through all the myriad original posts and extracted what I think are the main areas of controversy, the ones that are ripest for clarification and comment.
Let's start with an excellent, thoughtful and pro-Linux post from reader Rick Spencer on the general issue of Linux hardware support:
Fred: Linux will never be directly equivalent to Windows, for many reasons. There is no "Linux Corp." like Microsoft to centralize information and resources; the development process is completely different; the philosophy is completely different. This creates a completely different computing environment.
As an analogy, say you worked for Coca-Cola since Windows 95 came out, say as a bookkeeper. Your job has evolved since then, but you worked in the same building, on the same campus, in the same office, doing the same job.
Now, nine years later, you take a job as a bookkeeper at Pepsi-Cola, across town, the same tasks and duties, but your environment has changed. You drive a different route to work, park in a different lot, walk a different route to a different building, use a different security procedure to get inside, go to a different floor, different office, different computer, printer, photocopier.
Many of the things you took for granted at Coke are not even there at Pepsi. Pepsi has things that Coke didn't. You cannot expect them to be the same.
Linux and Windows compare very much the same as this analogy. Some hardware isn't supported in Linux. On the other hand, it is trivially easy to select hardware that is supported, and build a modern, high-performance PC that' is completely Linux compatible, but because it is a different environment, you have to make your choices differently. Some manufacturers do not care and make no effort to achieve Linux compatibility.
In another example, Windows XP allowed my scanner to work "out of the box" but required downloaded drivers and software to use the advanced features. The advanced features worked with Sane and Xsane with several Linux distributions "out of the box"--not that this proves anything.
In the end, if one makes the choice to use Linux rather than Windows (as many have) they must realize that they have moved to a new environment where the rules of engagement are slightly different. Hardware compatibility cannot be assumed, as it can be with Windows. For many, this is a show-stopper. That's fine. Make an informed choice, and stay with Windows.
But if Linux doesn't work with your hardware, it isn't because Linux doesn't measure up, it's because Linux is different, and expecting Linux to be the same as Windows is completely unrealistic.
-- Rick Spencer
This may surprise you, but I completely agree with Rick's main point that "...Linux is different, and expecting Linux to be the same as Windows is completely unrealistic." Unfortunately, many Linux vendors are now setting up that very expectation in their marketing, packaging, and pricing. I think this is a horrible mistake, practically suicidal.
Remember, my original article was prompted by an experiment with a commercial Linux distribution that costs about as much as Windows. Both Linux and Windows were supposed to work with the test hardware, but only Windows actually did work. And despite the best efforts of the Linux vendor's tech support, nothing could get the installation fully working. (The exact problem was a failure with the sound system. You can revisit all the gory details.)
When Linux is free, or nearly so, there's no reason to complain if its hardware support isn't quite up to Windows' level, or if there are other rough edges: You're getting a great price on a very good operating system, and the low cost more than makes up for any shortcomings.
But when a distro of Linux costs about as much as Windows, it's entirely reasonable to hold it to the same standard, and expect the same level of hardware support. Trouble is, that support just isn't there yet for Linux.
And that's my issue with many of the commercial Linuxes. It's not that "Linux is bad" or any such silliness. But by setting Microsoft-level prices, some commercial Linux vendors have set up a comparison they cannot win, at least not yet, because Linux cannot yet match Microsoft's levels of hardware support. Any Linux vendor that tries to charge Microsoft-level prices will inevitably be perceived as offering a lesser product.
To me, the answer is obvious: The commercial Linuxes should reduce their prices. That will instantly reduce the expectations of the end-user community and avoid the direct comparison to Windows' level of support. Linux will again be a bargain, and issues like incomplete hardware support and other rough edges will matter much less.
Name That Hardware
While the above letter was general, many of the other posts were highly specific. The largest thread of posts, stretching across several weeks and under several headings, dealt with the fact that I hadn't detailed the exact specs of the hardware that failed.
Many readers thought I was trying to hide something; or was secretly trying to stack the deck against Linux; or that I had some other evil motivation in not detailing the hardware. For example, check these four separate posts:
"So a so-called journalist claims he can't get sound working on some anonymous system ... he refuses to specify the hardware used. What is he afraid of? Is he afraid that somebody might fix that problem? Or maybe this anonymous soundcard/chip doesn't exist? Why must that hardware be kept anonymous?"
"The only reason he wouldn't reveal his hardware is he knows that it's Windows-only junk. He knows perfectly well why Linux won't work with it, but he makes us jump through all his silly hoops and never gives us the punch line at the end."
"Can you name that mysterious sound card and chipset, Fred? Somehow you keep on failing to do that .... Why?"
"Have you so completely given up on your career that you just make up stories? Unless you produce the hardware specs we should just assume you never actually did the test and just made up your article based on opinion and hearsay."
(I've omitted the names of the writers, above, because I have no desire to embarrass anyone. All the posts are on the InformationWeek.com Listening Post, and you can read them there in their original context, if you wish to.)
The omission was simple: I had seen no need to burn space in the original article with a list of the hardware specs because the vendor I was dealing with specifically said the system should work with their distribution (I had provided the support techs with a complete hardware rundown); and the sound chipset in question is listed on the Advanced Linux Sound Architecture (ALSA) site as supported. Thus, I thought that detailing the hardware was moot. The salient point was that it was supposed to work with Linux, and did not. It also was supposed to work with Windows, and did.
But, as the above four notes show (and there were many, many others), some readers from the Linux community are deeply suspicious of criticism of Linux. To them, the salient point wasn't that a supposedly supported sound chipset failed in Linux; but that I was "hiding" something. So, to try to get the discussion back on track, I posted the relevant hardware specs in the discussion area.
There were a few more posts in the "Fred is lying/hiding" vein, but most of those died out when the participants in the discussion saw that the sound system indeed should have worked. But then the discussion shifted, as the next item shows:
The PEBKAC Syndrome
Alas, my posting the hardware specs didn't help. Instead of clarifying the discussion and getting things back on track, things took a further step downward, moving from "Fred is a liar" to "Fred is an idiot."
User error is indeed a common problem in all kinds of computing. In fact, support techs sometimes joke about "PEBKAC" errors ("Problem Exists Between Keyboard And Chair") or "ID 10 T" errors ("idiot.")
In that vein, some participants in the discussion thought that simple idiocy might be at the root of my trouble with Linux. For example, maybe I couldn't hear the sound because I had the volume too low:
"I know what Fred's problem is. He didn't unmute the sound. When ALSA is first installed, it's muted. You HAVE to unmute the sound on any Linux distro that uses ALSA. All this over nothing. Fred, do your homework and stop being an MS lackey. Don't know how to unmute sound? Let me teach you: Open up "alsamixer". Yes, it's commandline. Press 'M' to unmute the sound and press '+' to raise the volume. Now, as root, type 'alsactl store'. Your sound settings are now saved. It's obvious you have a bias against Linux even though you say you don't...."
The advice above is fine, except that when a sound system isn't detected in Linux (or Windows), there's no mixer installed, so there are no audio controls to adjust or unmute. Running the mixer controls on an undetected sound system either fails, or (if in graphical mode) brings up a mostly empty dialog box. This isn't user bias or idiocy or a PEBKAC error, it's that there's no sound system installed to adjust in the first place. So no, the problem wasn't that I hadn't unmuted the sound. (Sigh.)
Real Men Don't Need Sound?
Other posts staked out positions I can only marvel at. For example, one suggested that sound really isn't all that important anyway:
"If you want to play games and your MP3's, then boot to Windows. If you want stability, speed, or mission-critical use, use Linux/Unix."
I don't know what that user does on his system, but I do heavy multitasking in my business work, and depend on audible alerts, system beeps, "task done" beeps, and the like to help me manage background tasks. A system without sound is harder for me to use because I either have to switch away from my foreground tasks to check on background tasks; or set the background tasks to steal focus and intrusively pop into the foreground when they need attention. It's much smoother and less interruptive to use a simple audible alert for those background tasks; and for that, I need a working sound system.
No, it's not that a soundless system is unusable; you can still get work done on a silent system. For that matter, color isn't essential for using a PC, either. Heck, a graphical interface isn't essential either--we could all go back to 80x25 monochrome character mode, if we wanted to. But why should we? Used properly, color, sound, and graphics help you organize and keep track of a wider array of information and concurrent tasks than you otherwise could, and smooth the management of complex operations.
Arguing that sound is unimportant is a little like the old joke about a general store whose slogan was 'If we don't have it, you don't need it." Except now it's "If Linux doesn't provide a function, you really don't need that function."
To which I can only say: Baloney.
Write Your Own Drivers
Another post suggested that I should just write my own driver to support the sound system in question. I admit that stopped me cold, not because it was such a good suggestion but because it was so spectacularly primitive: I've been involved with personal computers from the start, and the last time I had to write a driver was in about 1981, when I was a principal in a small software company. Back then, there were few true standards in computing, and it wasn't that unusual for even closely related hardware and software to have cross-compatibility issues. Often, you needed to hack little software shims, patches, or from-the-ground-up drivers to get things working. And it was OK then, because there was no alternative.
But that was more than 20 years ago. I was astonished to see "write your own driver" suggested now as a serious solution to getting a high-priced commercial Linux package running on mainstream hardware. (Remember: This was never about the free and hobbyist distributions.) Today, if you want to write a driver as your profession or as a hobby, that's fine; but for a full-fare commercial operating system to require that approach--that you turn the clock back 20-something years--is nuts. No mainstream, full-price commercial operating system should arrive in finish-it-yourself kit form.
A Blubbering Wreck
As time went on, the discussion sunk to a pretty low level, though I have to admit some of the imagery and language was colorful:
"You were never interested in getting the sound to work, you were only interested in making a sensational headline, even if that meant skewing the results. Which would make you worse than tabloid journalists and completely compromises your integrity as a so-called IT journalist."
"Go ahead, Mr. Langa, do your best to knock Linux; you will only ever find yourself a blubbering wreck on the Internet floor. You will only serve to help the open-source movement and rip another wad of cash out of Uncle Bill's pocket."
Of course, my intent wasn't to "knock" Linux, any more than it's my intent to "knock" Windows when I write about its many problems.
So let me state this as clearly as I can: Competition is good, and we need more options than just Microsoft with a smattering of Macs on the side.
Commercial Linux distributions are increasingly positioning themselves as a viable alternative to Windows on mainstream business desktop systems. This shows up in the Linux vendors' marketing language, in their packaging, on their Web sites, and in their pricing. That's mostly a good thing.
But when Linux vendors charge Microsoft-level prices, they're setting themselves up for a comparison they cannot yet win. High prices for Linux play right into Microsoft's hands.
Case in point is that article we've been discussing: Despite having a sound system that claimed to be supported by various Linux distros; and despite being told by support techs that my specific system would work with their Linux; I couldn't get the sound to work even after days of effort, and following every single suggestion the support techs offered. I thus cannot use Linux on my primary PC for mainstream business activities, which require sound. It's not bias, or idiocy, or lying: It's what happened.
But Windows, including very old versions, works on the identical system without the slightest hitch.
And I believe this again shows why, in microcosm, high-priced Linux distros are on a suicidal course: High costs raise expectations, and Windows-level pricing generates the reasonable expectation of Windows-type levels of hardware support. But as of now, Linux comes up short in that regard.
On the other hand, if commercial Linux vendors reduced their prices, they'd be defining their own playing field--- one where Microsoft is handicapped. Linux would be much better served in the long term by going back to offering inexpensive, robust solutions. That's a game the Linux community can win.
Someday It Will Happen
I truly wanted to use Linux on my best, fastest, newest PC. But I cannot--yet. It's not for any lack of diligence on my part, but because of a limitation in Linux.
I'll keep trying. Eventually, someone will release something that will work on my system. More generally, someday, Linux will probably catch up with Microsoft's broad support for mainstream hardware.
But that day surely isn't today.
What's your take? Have you run into hardware that Windows natively supports but that Linux doesn't, or vice versa? What compatibility issues, or successes, have you encountered? Please join in the discussion!