I think the idea of DSLs is a good one. It allows for very expressive code
I looked at JetBrains' calculator tutorial for MPS and it seems significantly complicated for a fairly simple DSL. Granted, a lot of the work goes into making a language that can explain to you when you're not following certain rules, but still. In a language like Groovy, (J)Ruby, or even Scala you've got a lot of flexibility to craft a DSL subset of the language itself. Assuming you already know one of those languages, you don't have to learn a completely new tool just to write a DSL.