I occasionally — no, not occasionally: regularly — see complaints about Linux (see the comments especially for “good” examples) from the strident voices of those defending MS Windows against all comers that look something like the following list.
- Linux hardly supports any hardware at all. It’s almost impossible for someone to get Linux working on arbitrary hardware without being a programmer.
- Installing software is too hard. Having to compile software at the command line instead of just using an automated installer is ridiculous. Even RPMs are too primitive, especially with the RPM hell of dependencies.
- Speaking of the command line, having to do all the system configuration and run all your programs at the command line is ridiculous. Some of us don’t have time for that. Let’s use an OS that has point-and-click tools, like tool-using humans.
- I can’t play any games on Linux.
Let’s take a similar approach to criticizing MS Windows:
- Windows doesn’t support network address translation services.
- It has no built-in firewall capability at all.
- There’s no integrated support for DVD-ROM drives.
- The lack of support for any filesystems other than FAT32 and older versions of FAT is ridiculous.
- A hybrid 16/32-bit OS, with no ability to support 64-bit computing, is absurd in this day and age.
- Why doesn’t MS Windows provide any automated backup capability without having to spend a whole lot of money buying from an independent software vendor?
- It’s unbelievable that Windows still doesn’t support hard drives over 32GB worth a damn. Why, just a couple weeks ago, I installed a 250GB hard drive in my FreeBSD system without the OS having any problem with it at all.
- The lack of real-time graphical resource usage monitoring is pathetic.
- There’s no support for multiple processors.
- Windows has no user database, keeps your last network login cached and replaces the old one if you use a different network login, and provides no local file access control at all. There is essentially no user authentication at all, except over the network. Even then, if someone has network access to your computer via Windows Workgroup or NT Domain network, that user will have universal access to files on your computer.
- There’s no separation of user and kernel process spaces, contributing to security breaches — actually, something akin to a complete lack of security at all.
- There isn’t any support in the OS for RAIDs at all.
- 3D graphics support is abysmal. DirectX 6 is simply not up to the current standards of OpenGL and most new games on the market.
- Windows doesn’t even support networking capability on the level of Samba for server functionality. There’s no DNS server or router capabilities.
- Web browsing with Internet Explorer is painful. It doesn’t even support XML, and thus it doesn’t support XHTML. It lacks support for content restricted inline frames. You can’t do tabbed browsing, and it provides no phishing protection or pop-up blocking. There’s no integrated search engine functionality, syndication feed support, or Internationalized Domain Name support. These are all things modern browsers should do. Even worse, this substandard, bass-ackwards browser is so tightly integrated with the OS that you can’t tell where one ends and the other begins.
You might notice that the Microsoft Windows complaints above seem a little out of date. In fact, I constructed that list from what I know about Windows 98, as released in 1998. Yes, that’s a completely unfair list of complaints to use to “prove” how awful MS Windows is today. I have news for you, though — the complaints about Linux that I paraphrased are circa 1998 as well, and apply to an OS like Red Hat Linux 5.x, not a modern release of any current Linux distributions.
- The Linux kernel alone supports more hardware than most non-Linux operating systems. Debian GNU/Linux is the most widely ported complete operating system in existence. More processors, motherboard chipsets, network adapters, and other discrete pieces of hardware are supported by Debian GNU/Linux than any other OS of which I’m aware, straight “out of the box”, as it were. Consider that with MS Windows you need a stack of driver CDs several inches high to install it from scratch on a fresh computer you just built yourself.
- If you think installing software on your average Linux distribution requires compiling source or fiddling with RPMs and dependencies, you must not have gotten the memo that was circulating ten years or so ago. There’s this fancy “new” thing called a “package manager”. All the major distros have one, and so do 98% of the not-so-major distributions. Imagine if Microsoft made Windows Update work better, more quickly, and with less hassle. Now imagine Microsoft added 18,000 or so applications to the lineup of things it supports, and excellent searching and package selection capabilities. Imagine Microsoft designed Windows Update so that it handled dependencies for you, making sure you never have DLL conflicts, and so that it never forces any install or upgrade on you. Also, imagine that it gave you security patches quickly, as soon as you needed them, rather than waiting until the second Tuesday of next month. Finally, imagine that quality control improved a thousandfold, so that it’s a truly remarkable event when — no, if — you ever see an update cause more problems than it solves.
- Most users of free unices, including the various Linux distributions, use the command line quite a bit more than MS Windows users. They do so because the command line is much more useful. The bash shell is more powerful than the DOS command line interface, and the standard unix core utilities are much more powerful than the meager lineup of command line tools available on MS Windows. Sometimes, working at the command line provides a lot more power, flexibility, and productivity than working with GUI tools. It just makes a lot more sense sometimes to use CLI tools than GUI tools. That doesn’t mean you have to use the command line, though. You can avoid bash (or other command shells) on Linux systems just as easily as you can avoid the DOS prompt on Windows. The GUI tools available for major desktop environments like KDE, GNOME, and XFCE are multifarious and comprehensive, and if you want to construct your own customized GUI administrative environment you can do so one tool at a time rather than just accepting the defaults that come with a given desktop environment — just try that with MS Windows. If the GUI tools you have on your MS Windows system don’t do what you need, tough.
- If you think you can’t play games on Linux, you’ve obviously never checked out Cedega, or noticed that mainstream games like Neverwinter Nights and Unreal Tournament have native Linux versions. True, not all Windows games run on Linux — but the fact that any MS Windows games at all run on Linux is pretty impressive, considering they’re MS Windows games, and considering how friggin’ many of them will run on a Linux-based OS. Some even run better on Linux systems, and for the average lifespan of an OS install, Cedega is less than half as expensive as MS Windows.
Maybe the next time some idiot starts complaining about Linux issues circa 1998 you should respond with complaints of Windows issues from the same time period. It might open a few eyes.
Disclaimer: No Linux distro is my favorite OS. I’m more of a Debian guy than a fan of any other Linux distribution, but I prefer FreeBSD over Debian. It offers nearly as much software via its package manager and ports tree, offers better security and stability characteristics, and in many ways is much easier to configure (compare sound configuration on FreeBSD with ALSA on Linux some time). I only mention this because I don’t want readers to assume I’m a “Linux zealot” just because I object to the inaccuracies and out-of-date statements in many anti-Linux arguments.