I've been a Microsoftie for years.
I don't worship at the altar of Microsoft, but as a pragmatic programmer and entrepreneur, I've utilized the tools most accessible to me to advance my art and my career.
I've run Linux -- RedHat 6, 7 servers, VectorLinux as a firewall/router box, Ubuntu on a desktop, Xandros on my Eee PC. I wrote multi-threaded networked Java applications (albeit fairly simple ones) before I ever wrote a line of C#.
All that said, I'm a Microsoftie. I run Vista x64 on my notebook, XP x32 dual booting with that Ubuntu desktop, 2003 x64 as my fileserver. I work as a .NET engineer for a fairly large corporation that is transitioning from a mainframe architecture to a mostly .NET, WinForm and web apps supported by a service oriented architecture. I also work for a startup that is centered around an ASP.NET website and a webservice API. I write C# day in and day out.
There's nothing wrong with C#. It certainly pays my bills, and the technology moves fast enough to keep me somewhat entertained. (Wish I had more opportunities to work on mobile devices; I'd really like to nail an MVP, after my unrequited nomination earlier this year.) My perspective, however, has become somewhat hampered by tunnel vision.
So one of my resolutions for 2008: learn a new non-Microsoft language. Maybe more than one. The candidates are Python (which of course has IronPython crossover), Ruby (also with .NET crossover), Erlang (which has some support for being compiled for .NET) or Haskell (which also has a .NET complement I believe).
I'm thinking Haskell ... coming from a web and BASIC background, I need something concurrency-oriented to really smoke my noggin.
Edit: and while I'm at it, I need to learn a foreign language. Thinking Chinese. China is certainly a large and growing influence in the world. I have two co-workers who immigrated from China in the past decade. My dad does a lot of business in China.
Chinese it is.