From a Windows developer's perspective, which VM application is the best? Why?
Simply put, it does what I need, it works fast and I find that Snapshots are a time saver (and a God-send!). I have 2 VM's running 24x7 on my laptop, and even though I have a lot of programs open, my CPU averages around 3% on idle with it occasional touching 0%.
That being said, I know a lot of people prefer and use VirtualBox. I beleive that this also has some good snap-shotting stuff in it, however I cannot vouch for it as I only used it briefly on Linux.
When it comes down to it, I do not look at price if it is something I need work related - as long as it works and does what I need. I have had good experiences with VMware Workstation, it does what I need when I need it.
I think VirtualBox should be on the list also since it has all of the main features folks have listed in other answers:
- Full snapshot tree
- Lot's of networking options (including isolation)
- "Seamless" mode for windowing (equivalent to VMWare Coherence and Parallels Unity)
- USB port access
And its also free on all platforms. VMWare Workstation on Windows plus VMWare Fusion on OSX plus VMWare Workstation on Linux definitely adds up. You could use VMWare Player, but then you lose snapshots.
It is a little more work to setup and I personally have not spend much time comparing performance.
If the Host OS is going to be Windows, I'm a pretty big fan of VMware Workstation/Player. It costs money, but has very good features (snapshots, networking isolation) that Virtual PC doesn't have.
Having said that - if you're just looking to spin up a bunch of test VMs, Virtual PC is perfectly adequate and works quite well, and is free. Virtual PC in Windows 7 is very good.
I run it on Linux for my development purposes, but it runs equally as well on Windows.