For those of you who have been following my blog (anyone?!) it may be surprising to hear that I'm abandoning Linux. It is not a decision I am making lightly. But after several years dealing with the limitation of Linux (specifically, Ubuntu) I have realized that the Windows 'ecosystem' really is better for me. Let me explain...
I use my computers as my primary source of video, both TV shows, movies, and my extensive collection of home videos. On Linux the playback of high-definition video has always been problematic, requiring never-ending experimentation with replacement video-drivers (the proprietary vendor 'blobs' versus the open-source drivers). The h.264 hardware-acceleration still doesn't work properly with ATI videocards, even with extensive manual revision of the installed drivers.
On Windows, this multimedia support is trivial, as Microsoft has created a well-organized system (DirectX) that all the manufacturers use.
Linux is inherently a multi-user OS yet the graphical interface is poorly tested. My wife and I share our Linux workstation, taking turns as the current login, and we can attest to these problems first-hand. Whenever one of us connects a flash-drive, the other user gets non-sensical error messages. This is a known problem with a longstanding Launchpad bug; never fixed. When we switch from user-to-user (using the longstanding 'fast-user-switch' feature) the login screen always flashes the name of the current user, then corrects itself... 'always' except for the occasional crash! Clearly this feature has not been properly tested. The first issue is cosmetic, the second is clearly more, but neither has ever been fixed.
One of the reasons I was initially thrilled with Linux was the ability to setup a software-based RAID mirror and get improved read-performance (as well as piece of mind). I used this on my combined boot/data drive(s). But now I am switching to using a single SSD for my boot/OS drive and a separate pair of mirrored data drives. This combination has always been supported under Windows so Linux has no advantage. Plus, on Linux, there was no built-in GUI for checking the state of the RAID array. I managed to find an old unsupported utility to do it but I have no idea if it would actually warn me of a failure. On Windows, I'm quite sure this GUI is available and supported.
Printer and Scanner support
I have had non-stop problems with both my printer and scanner under Linux. From kernel rev to kernel rev the support for my peripherals has come and gone, unpredictably. This has been true for my Canon inkjet, my Brother laserjet, and my Epson scanner. In theory I appreciate the use of generic hardware drivers -- the use of shared drivers means that they are better tested than individual/per-device drivers. But that advantage is moot if they don't correctly work on your hardware.
To add insult to injury, everything prints slower, especially the Brother laser. It's like there's an extra layer of translation taking place during the print-file generation? Printing even a single page will require a 20 second delay, whereas the printing from Windows is instantaneous.
I also have a 'pro-sumer' Epson scanner with 'ICE' support for correcting scratches in photos. But this feature is only usable through the Windows driver, there is no support for it through the generic scanner driver.
USB wake from sleep
By default, Windows lets you wake a machine from sleep-mode by moving your mouse and/or typing on the keyboard; Linux does not. It is possible to configure Linux to do the same but it can't be set as the default?! Instead, the best you can do is add a startup script to manually change the power settings at boot. And the configuration of this script varies from distribution to distribution, and even from release to release (as the startup processor changes or is replaced). On Ubuntu there is a Launchpad request for either a change in the default behavior, a GUI to easily edit it, or even just a way to make a permanent change in the configuration. It has languished for years without action.
I have also tried resolutely to only use native Linux apps. Some are actually better than their Windows equivalents, e.g. MP3 music managers. But I continue to run into unsolvable situations where the only functional option is the Windows version. My scanner, as I already mentioned, can only use it's ICE scratch-recovery with the native Windows driver. My Oregon Scientific weather station is only recognized under Windows; some other models have Linux drivers but not mine. The only Newsgroup Binary Reader with bandwidth control is on Windows. Quicken is still the best checkbook app. Outlook is still the best email/organizer app. Yes, for many years now I've been using Evolution in place of Outlook... And I have a handful of unresolved bugs (filed with Gnome.org) to prove that Outlook works better.
For the past couple of years I've resorted to running these Windows apps in a Virtualbox VM. In general this has been a satisfactory workaround. But I've long suspected that the majority of my system crashes were related to this VM sub-system. Surely it's better to run a single OS?
All these experiences have made me appreciate the relative pro's and con's of open-source software like Linux versus for-pay software like Windows. Obviously, no one in the Linux developer community is concerned enough about the various glitches to which I am subjected to try and do something about it. I still love the freedom of Linux and plan to continue using it on my personal single-user workstation. But, much as I hate Microsoft, I am forced to admit that the nominal cost of their Windows is a small price to pay for a 'sane' OS.