InfoQ

News

Evolving Embedded Domain Specific Languages in Java

Posted by Rob Thornton on Jan 02, 2007 12:30 PM

Community
Java
Topics
Domain Specific Languages
Tags
jMock

Steve Freeman and Nat Pryce presented a paper on Evolving an Embedded Domain-Specific Language in Java at OOPSLA 2006. The paper describes the evolution of jMock from a framework to a domain specific language embedded in Java. They describe how it happened, lessons learned about EDSLs, their limits, and how Java and C# work as host languages for them.

Freeman and Pryce describe DSLs and their benefits and how EDSLs are common in lanugages with small syntaxes (Haskell, Lisp, Smalltalk) but are harder to hit into large syntax languages such as Java. They then describe the previous incarnations of jMock as it developed from mockobjects.com, dynamock, and now jMock. They detail their lessons learned from each step on the evolutionary ladder. Then there is a detailed discussion of jMock and many of the design decisions they made.

They list some conclusions at the end, including the need to make sure a framework always works well in a modern IDE, that scaling EDSLs into complex languages may not be a good idea as the complex cases make the code harder to read, and that for the most part, it is too hard to extend conventional host languages.

No comments

Reply

Exclusive Content

Rob Windsor on WCF with REST, JSON and RSS

WCF is not just for SOAP based services and can be used with popular protocols like RSS, REST and JSON. Join Rob Windsor as he introduces WCF 3.5 and its new native support for non-SOAP services.

Christophe Coenraets Discusses Flex 3, AIR, and BlazeDS

Christophe Coenraets discusses Flex 3, Flex Builder, AIR, BlazeDS, Adobe and open source, integrating Flex with existing applications, and integrating RIAs with search engines and browsers.

Debunking Common Refactoring Misconceptions

Danijel Arsenovski attempts to dispel some of the myths around refactoring and how it applies to .NET developers.

REST Eye for the SOA Guy

In this presentation, recorded at QCon San Francisco, CORBA guru Steve Vinoski explains REST from the view of someone who comes to SOA from a traditional, RPC-oriented background.

Choose Feature Teams over Component Teams for Agility

Feature teams are key to scaling agility for large teams. In an excerpt from "Scaling Lean and Agile Development," Larman & Vodde show how feature teams resolve traditional problems & raise new issues

Billy Newport explains Virtualization

Billy Newport talks about virtualization, eXtreme Transaction Processing (XTP) and WebSphere Virtual Enterprise. He discusses hardware, hypervisor, JVM, application and data virtualization.

Virtualization and Security

While virtualization provides many benefits, security can not be a forgotten concept in its application.

Introduction to Agile for Traditional Project Managers

This session is specifically aimed at traditionally trained project managers who are new to Agile, and who would like to be able to relate the PMI's best practices to their Agile equivalents.