Virtual Development Environments

Sunday, June 01, 2008

Summary: If you have the VM hardware extensions, just develop inside a VM. I suggest VirtualBox.

Through curiosity, and work, I encounter more programming stacks than one machine can handle. My home machine previously contained Android, Python, PHP, .Net, Flex, Ruby, and other stacks resulting in a slow machine and configuration rivaling a game of Pickup Sticks. It also made moving between machines a big pain point.

My work machine started to feel the same strain with a WAMP and an ASP.Net stack when, while fixing a coworker's laptop, I found other people had the same problem. Their specific machine was running three different web servers and four different databases, not to mention the two IDEs and a smattering of smaller tools. At that moment I realized a VM was more than an instant server. It solves the "spew" problem, when software throws-up dependencies all over your machine for its own benefit. Your "spew" factor increases with the number of programs installed, and it can get messy very quickly.

From that point on I have developed my projects in a VM. I have one VM per programming stack and a base image to quickly copy when I need a new one. I should note that I use VirtualBox in seamless mode with the VM hardware extensions (VT-x / AMD-V).

Tips:
1. Get more RAM and a faster hard drive.
2. Skip Vista unless you need it.
3. Ditch both Microsoft Virtual PC and Microsoft Virtual Server.
4. Defrag the host OS more often.
5. Choose a different theme for your guest OS.