InfoQ

Interview

Jay Fields and Zak Tamsen on Domain Specific Languages

Interview with Jay Fields and Zak Tamsen on Oct 22, 2007

Community
Architecture,
Ruby
Topics
Rule Engines ,
Domain Specific Languages
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
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

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.