From my years with Windows, and my 8 months with Linux, I've made an evaluation of their respective cons and pros.
You'll notice most of the points overlap a little.

Windows

No learning. Pretty much everything that can be done in Windows, uses a somewhat standardized GUI, that once you know, you know. With Linux, most programs/packages are by different people, and made with different styles & standards. So you get a lot of inconsistencies or plain weird stuff.

No dependency hell. Almost all programs come with all the junk they need in their installation. On Linux you have to figure out what needs what, and some programs have inconsistent or complicated version dependency problems (though these are less of a problem using yum-like utility).

Works out of the box. Usually, your good to go after an installation. Whereas with Linux you often have to do some compiling, configuration, or dependency resolving (though front-ends through packages do usually work out-of-the-box pretty well).

Linux

Free. 'nuff said.

Do anything. You can do things, and make changes to part(s) of the system or programs, sometimes with little effort. Whereas with Windows everything is so cryptic and closed, you have to practically hack your way in with a kernel program just to accomplish the effect of editing a plain text config file on Linux.

Front-end, back-end, or no-end. I love this, this may be my Linux favorite, actually. The ability to do things in a 'raw' manner by editing plain-text config files (sometimes very easy, sometimes impossible). The ability to use a back-end, which automates and unifies the operation(s) for you. And the ability to use a front-end (which usually uses a back-end), to get everything spoon fed to you is always nice, of course (but the front-end is the hardest to find for Linux). This is cool, because when you do have the 3 options, you can use what ever suits your need at that time, you can make new front-ends to existing back-ends, and sometimes even interchangeably use different front-ends with different back-ends (a lot of this I see with audio).

Up to date. Staying up to date is pretty easy with the rapid release and development of packages and even OS versions. Windows waits 5 years for an update, and months for critical security patches. Long-term support is often desirable, and with things like the Fedora split, CentOS, you get the best of both worlds.

What are your takes?

P.S. I would like to check out FreeBSD, I read BSDers talking about Linux the way Linuxers talk about Windows. :P If anyone had any experience with a BSD, I would like to hear about it.