Have you considered just using one base vagrant file and using remote scripts for each language?<p>eg:
config.vm.provision 'shell', path: '<a href="https://raw.githubusercontent.com/adlawson/vagrantfiles/master/elixir/latest.sh'" rel="nofollow">https://raw.githubusercontent.com/adlawson/vagrantfiles/mast...</a><p>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.