This is a little embarrassing.  My most recent source of unhappiness was my purchase of a Dell Vostro 3700 laptop that happened to be one of those “Hybrid” chipsets.  In exchange for a smashing purchase price I am stuck with an Nvidia FX graphic card that will not work in Linux.  Instead I get the equivalent of an Intel HD graphic card.  The awful truth is that I would have saved even more money and gotten a laptop with just Intel HD graphics.  Pulling at this small thread has led me to even more sources of discontent.
 
In reality, my problems are much bigger than just my graphic card.  I have been a Linux user for quite some time (my first store bought copy was SlackWare 96).  I have used a variety of flavors with all types of user experiences:  source compile only Gentoo, Debian package management based distros, even some live CD versions. My younger more patient self was more willing to put up with the little foibles:  bad device driver support, half baked UI rewrites, API wars about issues that maybe 5 people in the world care about.  I was willing to put up with it because until about 2 or 3 Windows revisions back Windows was not the most competent O.S.  Furthermore, Linux was usually blazingly fast on even limited hardware.  One of these things has changed though:  since about Windows Vista, Windows has actually become a very usable and elegant O.S.  In fact, its fair to say that Windows 7 is easily the best desktop O.S. that has every existed.  I say this without the least irony and with a little eating of crow.
 
I have to admit, I wasn’t exactly rooting for Microsoft in the desktop O.S. wars.  I frankly didn’t care about commercial operating systems as I was perfectly happy using freely available ones.  A few things have changed for me in the last few years:
- I don’t have time to tinker      anymore.  I have a full time 9 to 5      and then I come home to code my startup application.  I don’t have time to spend days or weeks      without my computer just working.
 
- Linux driver support has      become progressively worse.  Back in      the day Linux was usually made to work on a few manufacturer pcs and maybe      one or two high performance computing platforms.  Today, Linux is running on everything      from cell phones to toasters.  The      resulting dilution of resources means that Linux just doesn’t have the      same driver support that it used to have.       This is particularly bad for desktop users as the paid driver      developers are working for enterprise vendors like Red Hat and they no      longer care about desktop Linux.
 
- I finally have a big problem      with the perpetual change model of Linux.       Here is the thing, do we really need to have 25 window      managers?  Do we really need 10      application servers.  I’m all about      diversity, but, diversity should be moving us forward not just changing      for the sense of change.  The Linux      community seems to accept that the platform is perpetually changing and      that we have to keep updating on a regular basis like a waiter serving      drinks on the roof of a moving vehicle.       That analogy explains what its like being a Linux desktop user      today.  Every day you log into your      machine and you are greeted by 5-10 updates.  You can read the developer descriptions      of those updates, but, they don’t get into the epic flame wars that may be      associated with those updates.  You      also won’t hear about why your machine may be broken after installing      these updates.  (I could write a      book on why this is not really always the developers fault, in fact, there      are so many reasons why this is).       The problem is that other than the Kernel, Linux frankly has too      many updates that can cause end user problems.  The traffic cops for this are the distro      developers and this problem lies in their hands.  This problem is for them to solve.  Quite frankly distros need to have      integration labs like what Microsoft have where they thoroughly test new      versions before hoisting them on an unsuspecting public.
 
- I am more concerned about      being able to work and be productive than I am about having new      features.  Maybe I’m getting old or      maybe I am very busy.  Either way I      wouldn’t mind using FVWM and old lib C if I didn’t have to worry about my      laptop breaking every few weeks.  
 
 
So how does Windows 7 fit into all this.  First off, it’s a damn fine OS.  I’ve never had it crash on me and I’ve used it on several different laptops and desktops.  Its not a memory hog.  The UI is very nice and simple.  The driver support is amazing.  Overall it is a very unfussy product.  This leaves me in somewhat of a bind though since most of my development work at home is on the LAMP stack.  However, there are several virtualization platforms that allow you to run Linux inside Windows 7.  Now this may seem quite strange, but, I need to run Linux for all the great developer tools and wonderfully free API.  However, I am likely going to give up on dual booting my laptop.  Long rant for little pay off, but, this is what you get from staying up late because of something stupid.