Have you considered just using one base vagrant file and using remote scripts for each language?
eg: config.vm.provision 'shell', path: 'https://raw.githubusercontent.com/adlawson/vagrantfiles/mast...
I am a big fan of super simple provisioning for vagrant boxes. For development and trying new things a simple bash script has proven, in my experience, to be much less of a headache then chef etc.