Those are all great points. These days there are great tools like(foreman from heroku comes to mind) that give you tiny configuration files to detect which versions of languages and environment variables you need to make an application run so switching between applications is actually quite seamless. I work in mostly higher level languages so maybe things aren't as delicate.