Proper DSLs

Dave Thomas wrote a great article describing a troubling fad in Ruby development. Specifically, he addresses DSLs – Domain Specific Languages – that try too hard to look like English rather than trying to cleanly describe a problem domain. I’ve always had a distaste for things like RSpec and AppleScript, but had a hard time describing exactly why.

Ruby makes it easy to create a domain specific language and many of the existing ones make the language particularly compelling. Rails migrations are beautiful in their elegance and descriptiveness. Rake is a joy to use compared to most build systems. XMLBuilder is a very sexy way to build XML files. The things that I feel many new rubyists fail to grasp is that these DSLs are not trying to be English. They are trying to create a simple and clear way to solve a specific problem while adding as little unnecessary cruft as possible. Most importantly, they all remember the difference between code and human language. A good DSL is unapologetically code.

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>