InfoQ

Interview

Jay Fields and Zak Tamsen on Domain Specific Languages

Interview with Jay Fields and Zak Tamsen on Oct 22, 2007 10:54 AM

Community
Architecture,
Ruby
Topics
Domain Specific Languages,
Rule Engines
Tags
ThoughtWorks
Summary
Jay Fields and Zak Tamsen have successfully worked with non-technical domain experts to design Domain Specific Languages for some of their projects at ThoughtWorks. In this interview with InfoQ they describe their motivations for using DSLs, and describe how they can be used to empower the business, reduce development time, and increase the agility of projects.

Bio
Jay Fields and Zak Tamsen are software developers and consultants at ThoughtWorks. They have worked in the Domain Specific Language space where they have delivered applications that empowered subject matter experts to write the business rules of the applications.
We are here at Ruby Conf 2006, with Jay Fields and Zak Tamsen from ThoughtWorks. Why don't you tell our viewers a little bit about yourselves?
The reason we are here is to talk about DSLs. We've been doing some pretty cool stuff, domain specific languages, can you tell us a little bit about why that's such a hot topic ?
Subject matter expert in this case being a financial analyst and in general we talked about domain specific languages, we mean that we're actually writing executable code, which i is readable and maintainable by someone like a financial analyst. Can you say if that's the case?
Why is there a connection between the topic of DSLs and Ruby?
But wouldn't business users be afraid of a programming in a programming language?
Is there a language designer role?
What does it take to be a good language designer?
Can you expand on iterative in that context?
How did you get into that kind of role?
This code that's in DSL, that's either written or at least the writing of it is assisted by a business user. How does that fit into Rails code or other programming code? Do you write a whole application in DSL?
How is this approach compare to using a rules engine? A lot of people might be thinking "why go through all that trouble when there are off the shelf packages that you can get to let the business user define the business rules of their application"?
And there aren't any off the shelf or open source libraries that do this sort of thing?
Let's talk a little bit about the challenges that we ran into with our first shot at doing this.
After I rolled out that project you kept going for a little while. And did you find that the technical user had to author new DSL code?
Would you say you tried to make it more natural?
Let's talk about that term. On your blog, and in our usage at ThoughtWorks you've been introducing this three letter acronym BNL.
Wouldn't a typical IT response to that be "you shouldn't be giving him a textual interface to begin with, you should be giving him a GUI"?
That's executable code right even though it's in the database
We've blurred the distinction between data and executable code?
Why is it uncomfortable?
A change that used to take 2 to 3 days.
I'm actually challenge that quote a little bit, not the quote itself, but being familiar with the project, a change actually took more than 2 or 3 days, because they didn't deploy.
Before it was a 30 day window?
Is there a tie-in between DSL techniques like we've been discussing and Agile?
What do you have to put into that?
Like writing Ruby 2.0 using an XP team?
But you can do that?
There is a catch there isn't there? In the sense that even though it's not general purpose, you still have a body of scripts.
You are saying this because of the scope?
The skeptics will say right now "it sounds like a fantastic silver bullet" but why is it not a silver bullet?
What is the future for Ruby and DSLs?
What was the performance profile of our project?
It was a legacy that we replaced.
You guys are certainly contributing to that future
show all  show all

2 comments

Reply

come senor fernandes by paul kamara Posted Oct 22, 2007 6:08 PM
Punctuation and DSLs by Dirk Ludwig Posted Oct 30, 2007 9:15 AM
  1. Back to top

    come senor fernandes

    Oct 22, 2007 6:08 PM by paul kamara

    obie man que pasa aqui? this release of the interview you had with jay and zak completely ***** up the timeline !!! now on a more positive note could you get jay and zak to look at the tape again and add their comments with regard to thoughtworks 's work with dsl's in the past year hay you guys still rock but dates are still important too

  2. Back to top

    Punctuation and DSLs

    Oct 30, 2007 9:15 AM by Dirk Ludwig

    "Ruby [is] concise and [does not require] things such as parentheses or semicolons, giving you a more friendly language for domain experts." IMHO whether punctuation for DSLs is a good or a bad thing strongly depends updon the domain, the domain experts, and the concrete syntax you are trying to establish. So you cannot say, that host languages which handle punctuation/paranthesis rather lax (e.g. Ruby) are better than others _per se_. For example, punctuation would have been a good thing in the comment of mr. kamara :-) Regards, Dirk

Exclusive Content

VMware Infrastructure 3 Book Excerpt and Author Interview

VMware Infrastructure 3: Advanced Technical Design Guide and Advanced Operations Guide provides a wealth of practical insights into setting up virtualization in todays corporate environments.

Architectures of extraordinarily large, self-sustaining systems

Can a system that is so large it cannot be comprehended be "designed" in a conventional sense? The foundations of computing are about to change. In this talk, Richard P. Gabriel explores why and how.

Using Ruby Fibers for Async I/O: NeverBlock and Revactor

Ruby 1.9's Fibers and non-blocking I/O are getting more attention - we talked to Mohammad A. Ali of the NeverBlock project and Tony Arcieri of the Revactor project.

Agile and Beyond - The Power of Aspirational Teams

Tim Mackinnon talks about the aspirations behind the Agile principles and practices, the desire to become efficient, to write quality code which does not end up being thrown away.

Concurrency: Past and Present

Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, STM, concurrency, alternatives to threads, Erlang, Scala.

ActionScript 3 for Java Programmers

Often the hardest part of changing technologies is language syntax differences. This new article provides Java developers with a transition guide to Actionscript which forms the foundation of Flex.

Neal Ford On Programming Languages and Platforms

Neal Ford talks about having multiple languages running on one of the two major platforms: Java and .NET. He also presents the advantages offered by Ruby compared to static languages like Java or C#.

Future Directions for Agile

David Anderson talks about the history of Agile, the current status of it and his vision for the future. The role of Agile consists in finding ways to implement its principles.