I stopped using VMware several years ago, when their installer for Linux was pretty badly broken unless you were using RHEL. IIRC they also did something to the window management around that time that really pissed me off. I suppose it's about time I should give them another chance, since (as noted) VirtualBox does have a number of issues.
In VirtualBox's defense:
- I/O performance is OK if you disable the write-through behavior of the virtual disk controller (i.e. allow it to use the host's cache). Yes, I know this can decrease robustness in the case of a host crash, but it has never caused a problem for me. I do tend to run on systems with ECC RAM and a UPS, so in my case the risk may be lower than for you.
- Not sure what "default integration with the host OS is better" means. In terms of window modes, VirtualBox supports full-screen, multi-monitor, dynamically sized guest window (guest desktop resizes if you resize the VM window), and seamless mode (guest windows display on the host desktop).
- USB device arbitration has gotten better in later versions (though USB performance is definitely still sub-par).
- Extension pack installation only takes a minute or so, so not a big deal? I understand their motivation here; this was done to clearly delineate between the Open Source and proprietary parts of the software.
- I consider the fact that they provide a native package for each supported Linux distro instead of a standalone installer to be a feature, not a bug. Use the OS's package management system instead of re-inventing the wheel!
I agree that:
- Hard drive management seems unnecessarily complex/cubersome.
- Snapshot management could still stand some improvement.
- Guest additions installation is (still) a bit of a mess. On Windows, lots of popups about unsigned drivers. On Linux the automatic installation seems to randomly work or not depending on the distro and version (sometimes you need to mount the GA image manually and launch the installer script by hand, but at least this always seems to work).
(this space intentionally left blank)