I’m not a fan of Domain Specific Languages (DSL) specially ones that are close enough to the real thing. For example; hibernate for java is a very good ORM layer but at some point you have to decide whether to implement stored procedures or us their DSL. The challenge is the optimizing of HQL requires hibernate in order to execute whereas if you use stored procedures you can use the bare CLI (command line interface) for your database. The later is so much easier!Recently I’ve been looking at Chef and Puppet. There was a time when the key differentiator was that Ruby implemented a DSL based on ruby and Chef was all ruby. This makes Chef more attractive to me… specially since Puppet changed their direction even though they might not admit it.