The Artima Developer Community
Sponsored Link

Cool Tools and Other Stuff
Ruby + DSLs = Power Tool "Ecosystem"
by Eric Armstrong
January 21, 2008
In both Ruby and DITA, domain specific languages make elegance possible. More importantly, each is producing an ecosystem of domain specific languages (aka "power tools") that is making it more powerful as time goes on.


I just blogged about something that Ruby and DITA have in common--Domain Specific Languages (DSLs), and the productivity ecosystem they create. Here is an excerpt of the stuff that is pertinent to Ruby....

The term domain-specific is unfortunately inaccurate in one important respect: It brings to mind highly specific problems, like those encountered in a shoe store, for example. In that sense, "domain-specific" tends to make you think of highly targeted IT applications--all very important, but unless you have such an application in mind, and can think of a language you might want, the concept of a DSL tends to remain an interesting abstraction with little practical value.

But there is a middle ground of DSLs that is highly general. That middle ground consists of general purpose languages that help you tackle a specific problem you face every day in the same way that others do, even though they are working in different areas. In Ruby, such languages help developers perform programming tasks. In DITA, they help writers provide information artifacts that technology users need.

The languages that live in that that middle ground might be called "general purpose domain specific languages", but that's pretty much a contradiction in terms. And it's a mouthful. So maybe we would be better served by calling them something else, like "empowerment languages" (ELs) or better, "PowerTools". Because what they do, first and foremost, is give you powerful tools you can use to help you build whatever it is you're constructing.


In Ruby Rocks!, I wrote about the intrinsic aspects of the language that makes development a pleasure. But the ecosystem of DSLs that is growing up around Ruby is perhaps it's greatest long-term asset.

Interestingly, the categorized list of Ruby gems at RubyForge shows some 800 projects devoted to software development. Some of the most powerful are DSL power tools. On the other hand, there are DSLs that aren't Ruby gems at all. Here is a list of "world-changing" DSLs:

Here are a couple of Ruby gems that sound interesting. I don't know much about them, as yet, but I'd love to find the time to explore them further:




Talk Back!

Have an opinion? Readers have already posted 29 comments about this weblog entry. Why not add yours?

RSS Feed

If you'd like to be notified whenever Eric Armstrong adds a new entry to his weblog, subscribe to his RSS feed.

About the Blogger

Eric Armstrong has been programming and writing professionally since before there were personal computers. His production experience includes artificial intelligence (AI) programs, system libraries, real-time programs, and business applications in a variety of languages. He works as a writer and software consultant in the San Francisco Bay Area. He wrote The JBuilder2 Bible and authored the Java/XML programming tutorial available at Eric is also involved in efforts to design knowledge-based collaboration systems.

This weblog entry is Copyright © 2008 Eric Armstrong. All rights reserved.

Sponsored Links


Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use