I switched to Linux in the days of Windows 3.11 + MS DOS 6.22, I was happy with it back then, it required more tooling around to get anything to work, but once the tooling around was done, it stayed working and it did not crash. At the time I was not entirely aware of why this was the case, but it was definitely apparent.

In retrospect, the reliability was contingent on the simplicity, beyond netscape and an xterminal window with a few editors and ncurses based programs, there was little that I ever used, and little that could ever go wrong. At the same time in the mainstream world people were attempting to shoehorn advanced applications into a far less advanced operating environment and the stability and usage issues that ensued were entirely concurrent with what one would expect for the situation. I realise now that I traded ill fit and ease of use for reliability and simplicity.

As time has gone by, both branches have slowly diverged toward one another, where the current situation stands between Windows 7 and the latest version of Ubuntu Linux both systems are highly technically advanced, running on mindbogglingly powerful hardware ( by comparison to back when I started ) and the seperating points between them appear to be shrinking all the time.

The way I use Windows 7 is modelled on the way I use Linux, I have VirtuaWin with hotkeyed multiple desktops (while in Linux I use Compiz with hotkeyed cube faces) Launchy (vs Gnome-do in Linux). But at some level within Windows things fail to compare to the equivalents in Linux, Package management is far superior in Linux, Gnome-do plugins allow it to be far more advanced and integrated than Launchy can be for windows; for example gnome do hotkey + username to quickswitch to a pidgin window for that user so I don't have to take my hands off the keyboard. After all these years the Windows environment has not done much to improve it's abysmal terminal environment, and I do not consider Cygwin a viable option considering something as simple as switching directories can take over 3 seconds and is totally throwing when you're trying to maintain mental flow. Development environments / server emulation environments within linux are far superior also, but without much difficulty, in either case one can simply virtualise what is needed from the other environment anyhow.

On the other hand, Linux applications are still far more rare than windows applications, the world at large assumes that everyone uses windows and happily throws around documents from the office suite without so much as a consideration that these might be annoying to deal with. Openoffice goes some way to mitigating this, but it's unrealistic to say that surviving in the application ecosystem on Linux is just as simple as the same ecosystem within Windows. Microsoft / Adobe applications (especially flash, my love for linux is inversely proportional to my hatred for Adobe at any given moment due to how utterly bad adobe applications / support for Linux tend to be in general)

In conclusion, they both have their advantages and disadvantages, and I am happy to use both in virtualised or dualboot contexts, I believe limiting oneself one way or the other is probably a mistake.

I realise that the above is of course only going to apply to my own needs as a Developer / Systems Administrator. If you're a designer or office worker or something then I can imagine very little reason for you to be a Linux user instead of a Windows or OS X user.