The downside of using meta languages is that they must be compiled. There are a number of solutions available to make this easy, but to me, nothing beats the old fashioned “save and refresh” pattern. The Meta Languages module allows you to add meta languages in their uncompiled state to a SilverStripe project and compile them at run time transparently.
Give your code the horsepower it deserves, and take advantage of one or many meta languages. With this module, it’s easier than ever!