The way you phrase this makes it a pain to debate, to I'll try saying it a different way first. You give two reasons for not developing inside VMs:
* It forces you to deal with different configurations, which results in being able to move between systems more easily.
* It's slow.
The problem with your argument about dependencies is it invites distraction. The cross-environment difficulties don't happen when you control; they happen on their own schedule. The proper way to make sure things are portable is to have a process for it.
As for the performance thing, that may or may not be an issue. It's not wise to just assume it's going to be an issue. Usually a VM is fast enough for development.
* It forces you to deal with different configurations, which results in being able to move between systems more easily. * It's slow.
The problem with your argument about dependencies is it invites distraction. The cross-environment difficulties don't happen when you control; they happen on their own schedule. The proper way to make sure things are portable is to have a process for it.
As for the performance thing, that may or may not be an issue. It's not wise to just assume it's going to be an issue. Usually a VM is fast enough for development.