Both sides have things in common. They see the flaws on their own side as minor, and the flaws on the other side as major. I want to talk about some of these flaws and I'm going to try to take an objective approach to it.
A little description about my history: I used to be on the Windows advocate side. Many of the arguments that the Windows advocates make are ones that I used to make as well. And some of them I still make. Now, I use Ubuntu at home, and Windows at work - although I would prefer to use Ubuntu at work.
On a side note, I'll point out one difference between the two groups. People on the Linux side love Linux and hate Windows. People on the Windows side just hate Linux, they don't seem to show a great love for Windows other than "it does what I want it to do".
Why is Windows better than Linux? Here are some of the reasons given by the Windows side.
- Easier to use - I won't entirely agree with this one. I do think that there are a lot more things in Linux that have a steep learning curve, but for general use I don't think either is easier to use. My girlfriend uses Ubuntu (of her own volition believe it or not, she asked me to install it) and now has trouble when using Windows because it is unfamiliar. I feel the same way when using a Mac.
- Better hardware support - This one is true for newer hardware, since many hardware manufacturers don't really have Linux as a priority. Getting my Logitech webcam to work with both the camera and the microphone was a huge pain, and it still doesn't work in a lot of programs. If Linux gains more market share on the desktop this may change, but for now it is a problem.
When I look back though to when XP came out, it didn't really work too well either. My hardware gave it a blue screen on install - I had to take all of my hardware out except for the essentials in order to install the OS (this was back before everything was onboard, so it was a fair few pieces). Then after I installed the OS, I had to reinstall the hardware - which was not detected of course - and get all that working.
Windows has better hardware management. The device manager is wonderful. While you can do the same things in Ubuntu with modprobe/lsmod/lsusb/etc. there is nothing that really parallels for it. What gives Windows its edge is that the device manager not only sorts things into human-readable categories (Ubuntu gives a lot of extra information that is useless to me), it also points out what hardware was detected, what isn't working, and a brief description as to why it isn't working. This means that I can spend less time figuring out why it isn't working and focus on getting it working.
I do have to say that Linux has Windows beat in that once you have a driver, you don't have to restart the damn computer after you install the driver - you might have to restart X in the case of video drivers, but logging in and out is faster than a restart.
- Better media support - Windows has built-in support for MP3s and encoded DVDs. Windows Explorer detects the type of media that is in your folder (even XP does this) and gives you different columns, etc. to better manage the media. Windows easily has Linux beat here. However, Linux has Windows beat on a few things. If Windows doesn't support a codec out of the box, you have to find the codec and install it - Windows Media Player shows that little "searching for codec...error downloading codec" thing that always seems to fail. With Linux (or at least Ubuntu), it actually gets the right codec you want and installs it. Also a neat thing is in Ubuntu when you mouse over a music file in Nautilus (the file browser) it starts playing the song until you move the mouse away. I could see that being cool for when you have LAN parties and are browsing a friend's computer for stuff to yank.
- App Consistency/Interactivity - Applications in Windows play better together and act more similarly than ones under Linux. Yup, it's true. Especially when the programs you like are a mix between KDE and GNOME programs. One annoying thing in GNOME is that if I use single click to activate instead of double click, it doesn't propagate everywhere. In file browsers for programs I'm still required to double click. Not a huge issue, but inconsistent.
Why do people choose Linux over Windows?
- Malware - Windows has viruses. Linux does too, but not as many and they're much less dangerous. Of course, you could say it's because Windows has so many more users, but I've written about this before and I don't think it is simply a matter of market share, there are several other factors. Speculation aside though, the fact is that when running Windows there is a problem with viruses, with Linux there is much less of one.
- Freedom - You don't have to pay for Linux (at least not with money). You don't have to pay for updates, or new versions. Furthermore, you don't have to pay for a lot of the software for Linux. Even further, a lot of the time you don't even have to pay for support, as there are plenty of helpful, articulate people on places like Ubuntu forums that are more than willing to help you out (I will talk about this one more later in the article). Finally, you don't have to worry about being locked out from stuff you paid for because the damn pirates are draining the cash coffers of the makers - mainly because the makers couldn't care less if people pirate the software (is it even possible to pirate open-source software?).
It's not just about money though. The limit that you can go with Linux is the limit of your knowledge, and the time you're willing to invest. You can dig deep into the code and change pretty much any functionality you want - proprietary drivers aside. Not only that, but you can tell all your friends about it, and give them your change. Or you can publish it on the Internet, and have other people use your change. Of course, if you're writing drivers then you might have to worry about getting sued, but that's not really OS-specific.
- Software Repositories - Mmm. I really do love package managers. You have a nice secure location that handles both the installing of software, and the updating of it. When I use Windows, I now find it a bit annoying when I actually have to go to someone's website to download their software and install it. Like come on, that's so last decade. Or earlier this decade.
There are some downsides to package managers, mainly that they aren't completely able to keep up with the updates done in software, but for the most part it's alright.
Both sides are right. However they are both wrong in that they seem to see the community as a monolithic stereotype of geeks. There are plenty of people in the Linux world that are nice, helpful and actually competent at telling people how to do things properly. The advocates of Linux will then point to these people saying why the Linux community is so awesome.
But then on the other hand, you have your open-source zealots. The people who love Linux and don't just stop with loving it, but trying to stuff it down everyone else's throats. They lose sight of the fact that Linux is about choice, including the choice not to use it. And they give the rest of us a bad name. Or there are other people who are great coders, but aren't so great at explaining things in non-technical language. Or the people who will code a program, release it as open-source, and then are expected to provide support for their program from the masses of people who seem to think that the programmer owes them something. These are the people that the Windows advocates will point to and say, "Linux community bad!"
Looking at my list of reasons, it seems like the list to not use Linux is longer than the list to use it. So why do I use it? I've answered this before, but what it really comes down to is that when I'm using it, I like it better. I know how to use both OSes fairly well, so usability issues don't get in the way anywhere. I find that I get 95% of things done faster or with less effort under Linux than under Windows. This is not a scientific observation, nor do I have much proof of it, it is just more of a feeling that I get while I'm using either OS. There are the 5% of times that Linux is slightly more annoying, and I've written about those times in past (although looking back some of them aren't really that justified, just me being a whiner). However I'm not going to let that 5% make the other 95% suck.
In the end when criticizing Linux, remember what you had to pay to use it: nothing. You might have had to spend time with it, but it's not like time is that vital (what else would you do, watch TV?) So yeah, the developers don't really owe you anything. Don't act like they do.
At the same time though, I wish so many Linux people would stop hyping it up to be better than it actually is. I like Linux and all, but that doesn't mean there aren't times when I want to throw my computer out the window. It is not a silver bullet and there will always be things that Windows does better.