I am a computer programmer and developer by trade, and I am accustomed with development on Linux (and UNIX in general) and on Windows. I prefer Linux and I'd like to tell you why. I will not lie to you by telling you that all the tools you can find on Linux are completely unavailable on Windows. In fact, it would be possible to get a working Linux-like development environment on top of Windows. However, this solution is both not as integrated as a native Linux workstation and will require a lot of time and frustration to set up. This fact is partly due to the fact that free software traditionally originated from the UNIX world, and partly due to the fact that Microsoft does not make enough effort to change the situation. (Whether it desires that is a different matter, but I won't go into it) After downloading and installing a Linux distribution, I already have most the tools that I need and use on my hard disk. What I don't have, I can download from the Internet for free. Linux has the property that almost everything compiles and installs with as little hassle as possible, due to the fact that it's the most popular UNIX variant and the one where most of the development of open-source software takes place. Not only that, but I find the tools that are available on Linux, better (at least when taken as a whole) than their equivalent commercial counterparts. I developed a very delicate and complex C program that can run on both Linux and Windows, and I found the gdb debugger much more helpful in tracking obscure bugs, than Microsoft Visual Studio with all of its bells and whistles. I also recently co-developed a simulator for Internet noise using Linux as its architecture. With the power that was given to us by the new Netfilter architecture, we were able to keep a lot of the development in Perl, which is a very common high-level language used on Linux. Later, we converted everything to C to gain speed, but we had the advantage of having a working Perl code, to base upon. Aside from all that, I also developed countless web-based services on Linux. While using the Apache web-server in combination with Perl, I managed to develop them quickly and easily, and without paying or owing anybody a dime. It was sometimes done at the comfort of my own home. For the record, a comparable NT/2000 with the same pipeline would cost dozens of thousands of dollars (excluding the hardware). With the advent of GUI environments such as KDE and GNOME, I found out that working on Linux, even for not developing stuff, has become much more comfortable than Windows. While I use the graphical user-interface a lot, I can always default on the command-line and Perl to perform and automate the tasks I have to do as a user. And in Linux, almost everything can be done on the command-line, and thus, it is, all, programmable.