Being a long-time Linux user, and accustomed to the way Linux (and the Linux desktops) work, I often feel like I'm running into brick walls when using Microsoft Windows. Although Windows is a useful operating system -- and the vast majority of computer users use it -- that doesn't mean that any user can sit down and work in a trouble-free environment. And as much as Windows users claim they run into challenges with Linux, I find my experience to be quite the opposite. So I thought I would share with you the frustrations I encounter on a daily basis with Windows that I don't have with Linux.
Note: This article is also available as a PDF download.
A Windows machine without antivirus or anti-malware is like roughhousing with a cat -- it's inevitable, one day you are going to be bitten or scratched. It's not a matter of "if," it's a matter of "when." And even with antivirus or anti-malware, you still run the risk of getting infected. It doesn't seem to matter what flavor of protection you use. We've seen viruses and malware get past the best solutions. And to make matters worse, when you do have antivirus solutions on a machine, they get in the way of other tasks. (If you've ever had to run Combo Fix on a machine that uses AVG, you know exactly what I mean.)
With Linux, you don't worry about this. And even if you do employ an antivirus solution on Linux (to save your friends who do NOT), you will rarely, if ever, see it get in the way of other tasks or duties.
2: Flaky network connections
I could approach this one in various ways. But suffice it to say, the Windows networking tools are not nearly as powerful or flexible as the Linux networking tools. Sure, it's common knowledge that Windows has much more support for wireless networking hardware, but that doesn't mean the result is better. It has been my experience that once you have a network configured on a Linux machine, you will rarely experience problems. If you do experience networking issues on a Linux box, they can usually be tracked down to an external source. On the rare occasion that the Linux box is actually the cause of the networking issue, it can most always be overcome by simply restarting the networking system. Linux was, after all, built to be on the network.
3: Mysterious slowdowns
Quick: Think about the last time your Windows computer mysteriously slowed down. What eventually was the cause? Fragmentation? Virus? Malware? Operating system hogging too much resource? Or were you ever even able to discern the problem? With Linux, those slowdowns (especially of the mysterious types) are next to nil. This is especially true on a Linux server.
4: Mysterious application crashes
When a Linux application is up and running, it will almost always run until you finally say "no more." And even if it does crash, it's easy to figure out why. Worst-case scenario: Start that application from the command line and check out the information it feeds you when it crashes. Windows? Good luck. You can try the Event Viewer, but that is rarely any help with third-party applications. And try to debug a Windows (or third-party) app on a Windows machine. It's not nearly as easy as it is with Linux. When applications crash, I like to know why.
5: Lack of troubleshootingThis fits well with number 4. Linux troubleshooting is most always as easy as looking through /var/log for whatever is ailing your machine. You will most always find out what's going on from one of the many log files. Or you can always open up a terminal window and follow a particular log file (such as /var/log/messages) with the command tail -f /var/log/* (where * is the log file you want to follow). If you're not so fond of the command line, you can always install a GUI that will allow you to scan through the log files for issues. And for applications that are giving you real trouble, run a backtrace to get all of the debugging information you need and either fix it yourself or send the results to the developers. The problem will be resolved. And we don't really need to get into reporting, watching, squashing bugs with bug tracking software or sites. Linux far surpasses all other operating systems with regard to bug squashing.
6: Outlook/Exchange headaches
Okay, I will say that the Exchange/Outlook combination is a serious one-two punch within business and/or enterprise organizations. Although there are good Linux alternatives, they all tend to be Web-based. The problem with Outlook/Exchange is that headaches caused by either/or tend to be fairly massive and on going. Outlook itself is a serious beast when something goes wrong. Between keeping PST/OST files free of problems, keeping Outlook actually online with the Exchange server, keeping add-ins from bringing Outlook to a screaming halt, and everything in between, it amazes me when Outlook actually works like users expect it to.
7: Cumbersome printing
Let's all say this together: "Printing in a Windows environment is a pain." Of course, printing in general is a pain... but never so much as it is in the Windows environment. There is always the issue with whether a printer will work in Linux. But when a printer works in Linux, it ALWAYS works. I have set up Linux printer servers that have worked, without fail or restart, for years. And with the most recent releases of GNOME, printer sharing in Linux is incredibly easy. On any given network, with a Linux machine sharing out a printer, I can set that printer up on any operating system. Try to share a printer between Windows XP and Windows 7 without feeling like you are going to tear out your hair.
8: Windows 7 heterogeneous networking nightmare
This goes along with the printing issue. I can't tell you how many times we face problems when trying to share Window's resources between different versions of Windows or Windows and other operating systems. Generally speaking, the other operating systems do not have trouble, but the Windows operating systems do NOT like anything but their own kind. Although Windows 7 is the best iteration of Windows to date, it does not like to play along with older releases. And the Windows 7 Homegroup -- how much hate has that inspired? Plenty.
9: Lack of multiple desktops
This is a nit to be picked, I realize. But when you're used to the multiple desktops of Linux, going to a single desktop environment (unless you have multiple monitors) is just inviting confusion and inefficiency. Windows users can experience what having multiple desktops is like by purchasing a second monitor. Once you have grown used to this concept, you'll see why Linux users have always had such trouble using the Windows desktop.
10: Disappearing resources/resource hog
Working on a Windows 7 desktop that has less than 2 Gigs of RAM is like working in slow motion. And when that RAM is gobbled up by a poorly coded application, it makes your work ay nothing short of miserable. I have found that most all Linux distributions do a much better job of allocating resources and handling RAM than does Windows. Linux uses RAM to cache files until the cached files exceed the amount of RAM available. Windows 7 will use memory for cache only when there is no other demand for said memory. In other words, if an application running on Windows needs the RAM, it will get it. By contrast, Linux hands out the RAM to whatever calls for it. When RAM is exceeded, it then uses the swap partition. Although the swap partition is much slower than RAM, this method (IMHO) is a much more efficient use of system resources.
I realize this is very much biased toward Linux... but wasn't that the point? I have been a Linux user since the mid '90s, and I simply find Linux better suited to my needs and my style. I do use Windows when necessary, but always seem to want it to behave more like my Linux desktops. What do you think? Do you have issues when migrating from Linux to Windows? Or what about the other way around? Share your thoughts with your fellow TechRepublic readers.
Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.