I am using Linux for all my development work (C/C++/Python/Ruby). My friend, on the other hand, is using IDE (RubyMine) for Rails development in Windows. He was asking me "What's the advantage of using Linux for development work? I can work just fine with an IDE in Windows". I only could come up with superficial points like "command line is more flexible", "Linux has lots of tools to help development", etc.<p>What do you think is the most compelling reasons to use Linux for development vs Windows?
It's really down to personal preference and what you're developing. If you're developing web software that will run on Linux then developing on the same platform will save a lot of headaches down the line.<p>Another advantage is that is doesn't take long to find and install development tools. You can go from a clean install to a comfortable dev environment very quickly.<p>It's also easy to automate. There are lots of little tools that can be strung together to perform boring tasks. I found that it changed my way of thinking, and I often look for command line tools or script if I have to repeat a task for than a few times.
I find most opensource projects assume a Unixy platform if not Linux specifically. For instance a quick look at the Rubinius website shows install instructions for Mac and Linux, none for windows. RubyEE on windows? nope. MRI windows support is provided by a third party, that builds it with unix tools on windows. That isn't to say it is a bad thing, just it is a fish out of water. I find gems with native extensions are often less likely to work on windows, but it has been a few years since I fooled around with ruby. Salmon have been known to swim up stream, doesn't mean swimming with the current isn't easier.
I personally think the single most compelling reason to develop on Linux is package management. That way, you can with just a few typed commands install multiple versions of many, many different compilers and interpreters. Keeping updated is mostly automatic (or not if you want). Windows requires visiting each website, finding the latest version, downloading, installing, and then updating later-all manual.