First off I have to say I'm a big fan of Microsoft. vs.net makes software development more powerful, structured, and definitely easier. However, that does not preclude me from using other types of operating systems like Linux. So I'll try to play devil's advocate for a little bit in the hope of spurring a long awaited discussion on channel9. I started using linux when I found some of the smartest people I knew here (Cal) were using it. I wanted to know what the big deal was so I installed Red hat. Though it did take time to adjust, I definitely found some merits. In Linux I feel as a user I have total control over what the heck is going on in my operating system. I know exactly where my files install into, which configuration files I need to change, etc. Though this doesn't necessarily make my life easier for development like in .net, I think having complete control makes me feel that I have a better handing of the development process. Sometimes I feel Windows makes my life too easy. In Windows the level of customization I have as a user is quite limited. In Linux I can change just about anything - make the desktop look like a mac, xp; make all the windows transparent - all without having to download third party software that uses 20+ megs of ram and asks for a 30 day trial subscription every five minutes.
Currently I'm doing research in the area of mobile ad hoc networks. I'm developing new routing schemes that can help to decrease the control overhead, congestion, interference, delay, etc. On Linux I was able to hack the kernel code to allow my machine to run the protocol. Currently I'm working on getting more machines to build an actual ad hoc networking topology rather than having to code it in ns-2. Now I must say I never felt so satisfied with development until I started hacking the kernel code - and now I'm slightly addicted to trying to break their networking packages to find bottlenecks. I found the support from the open source community to be quite overwhelming. Developers I met on forums or aim would take the time to post fixes to my code on CVS. I decided to give back and participated in some small open source projects and I learned so much about different styles of coding. It was a lot of fun and I made some good friends in the process.
I am one of the few kids who likes a challenge. Although there are compatibility problems with certain hardware and lack of specific software, I am willing to accept those downfalls just to have some level of control. Also the benefit of using open source software is it allows me to update my whole operating system and all the software titles I have installed on it with just one command.
I think another reason why many of my friends here, MIT, stanford and cornell use linux is because its hacksor. They want to look like they are the almighty gods who don't need the extra comfort windows provides to run their computer. Maybe it's because windows lumps together both novices and advanced developers into one platform. I always wondered why msft never developed two forms of lets say windows xp pro - both that support all the hardware and software, but one more tailored to the average user and another for the developer who wants a shell that can actually do every possible action without having to resort to some type of gui.
Anyway that's my two cents. I honestly use both platforms on a regular basis for a wide variety of different applications. I tried linux because I wanted to have an open mind. I wanted to know why some of my friends were willing to accept some hardware/migration incompatibilities just to run linux. After trying it out, I definitely found some advantages. I have so much respect for the developers at Microsoft who create the amazing software products I use, but I also respect the open source's cause and how far they've gotten in such a short time frame. I'd glad that Microsoft is considering Linux/open source as worthy competition because it will lead to even better, faster software solutions. The more innovations that come from Microsoft as well as open source will surely benefit computing around the world.