DSLs - Not Quite Child's Play ... But Closer!

Published 16 May 07 10:53 AM

One of the books I've been reading recently Jack Greenfield's (and several other really smart people) book Software Factories.  While I'm not yet sure that I buy into the notion that the creation of software solutions will undergo an industrial revolution of sorts (at least in a measurable timeframe), the thing that really drove me to this book was the discussion on domain specific languages - or "little languages" if you're coming from the UNIX world.  I've been following the efforts on DSL coming out of companies such as Microsoft, JetBrains, and Intentional Software for a while now and while I think that model driven architecture is probably too prescriptive as an approach, I do think that there is a great deal of business value to be gained by promoting language oriented programming.

While Jack's book is incredibly insightful, it also (at least for me) can be a pretty difficult read as it takes me back to my old CS days.  In fact, much of the work on DSLs reads this way as we are just now starting to try and describe and articulate the theory behind the tools.  Therefore, I think it's always fun to see a practical implementation of a "little language".

The Scratch language is a visual programming language for kids developed by Mitchel Resnick and team at MIT's Media Lab.  The language allows kids to build software systems that do some very basic - but very real things.  What's cool is to think about the next step - when we come to a better understanding of integrating different DSLs to create richer systems.  As an example, taking a Scratch application and integrating it into a distribution language would be an easy leap for allowing kids to create simple games that they can immediately promote to the Internet to play with other kids all over the world!

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

# Ben Scheirman said on May 31, 2007 12:31 PM:

I think Ruby is a great language to define DSLs because you can really augment the syntax in any way you choose.  This can easily be taken to the extreme where what you're left with *isn't* Ruby, (which can be good or bad) but that's the power you have with such a dynamic language.

I'm not yet convinced that the C# 3.0 language extensions will give us the same amount of flexibility.  What do you think?

Leave a Comment

(required) 
(optional)
(required) 

  
Enter Code Here: Required

About hdierking

I am currently the Editor-in-Chief for MSDN Magazine. I joined Microsoft in 2006 as a product planner with the certification team at Microsoft Learning. Prior to that, I spent my career as a developer and later as an architect. My main technology passions include pretty much anything on language theory, agile development, and service-oriented architecture.
Page view tracker