Friday, October 21, 2011

Best Windows Development Environment

I know, this one is going to sound a bit crazy, but hear me out. IMHO, the best Windows development environment is Linux.

First, let me start with a less surprising statement: the best way to run a Windows installation is on a VM. This should make perfect sense to anyone who runs Windows on a daily basis, and knows that as time goes by, it simply gets slower.
No registry or other cleaning utilities can return it to run as fast as it was the day you installed it.
Moreover, when one wants to test a new piece of software, the VM's snapshot feature really shines.
So, every once in a while, one can revert to the a stored snapshot, and get an almost fresh Windows installation, almost instantly.

When it comes to development environments, where one rarely install tools, and the code is managed in source-control, reverting to a snapshot is even easier.

My second point is: use the host environment that you feel most comfortable with. In my case, it's Linux. Specifically Ubuntu. If you prefer running a Mac or a different Windows as the VM guest, it's OK as well. But I can assure you that after giving Linux a trial period as the host OS, you'll find it the most pleasant one.

Moreover, if cross platform compatibility is an issue for you, having Linux *and* Windows running simultaneously, is a great advantage and a real time saver.


  1. While using the snapshot feature for testing Windows software, I think it would be better to run Windows software inside a sandbox. This way you could remove any Windows software without side effects, without reverting the whole system to a previous state.

    The bad thing is that the best sandbox solution I am aware of is Wine, which doesn't run under Windows and doesn't run all of the Windows software as well as Windows itself.

  2. Thanks Tomer. Your comments remind me of another tip I wanted to give: under Windows, it's probably best to use portable applications whenever possible. Such applications (usually) doesn't leave a trace on the system, and has a lower chance of breaking it.