InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Language Workbenches May Ultimately Completely Change the Way We Do Programming

Posted by Abel Avram on May 06, 2009

Sections
Development,
Architecture & Design
Topics
Architecture ,
Language ,
Domain Specific Languages
Tags
Intentional Software ,
JetBrains

After many years in development, Intentional Software has finally released their Intentional Domain Workbench (IDW). JetBrains has open sourced their Meta Programming System (MPS), currently in Beta 2.

Magnus Christerson, Product Manager at Intentional Software, demoed IDW during DSL DevCon creating quite a stir in the audience. IDW is basically a Language Workbench but it also includes a Projectional Editing environment. The entire workbench is built around Intentional Tree which holds a semantic model allowing multiple projections of the domain and can be used to generate code. The user can view and edit the model through various projections, each edit updating the model and the other projections. The model is then converted into code through compilation.

IDW is targeted at programmers to build a domain specific environment for business domain experts.  The domain experts can express concepts and rules using any customary notation they prefer - their business domain language - which can be projected using text, graphics, symbols, tables etc.  The programmers job is to build the desired projections and also transformations that will generate code into a programming language domain. The domain expert will edit domain requirements that are then transformed into code. IDW currently has code generation domains for C#, Java, C++, Ruby, SQL, HTML, Javascript and XML, and additional can be added by customers.

The demonstration has greatly impressed the audience. Markus Voelter said:

If you're into DSLs, you *have* to watch this video. It clearly shows the potential. Give ISC a little bit more time to polish the system, and this is going to be a revolution!

Larry O'Brien:

Intentional Software has forged a silver bullet.

Glenn Block:

This is not about snazzy demos, this is about completely changing the world we know it.

IDW is not publicly available yet, Intentional Software choosing to share it with selected customers like Capgemini and ThoughtWorks. Magnus C. invites those interested to write him, but they should expect a very restrictive NDA.

JetBrains released Meta Programming System for a Language Oriented Programming (PDF) style. Basically, it is the same thing as a Language Workbench. The product is currently in Beta 2, the production being expected this quarter. MPS is free, most source code being available under Apache 2 License.

Useful resources: Lang.NET presentation on IDW by Magnus C., Martin Fowler’s report of the IDW demo held at Lang.NET, InfoQ presentation on domains and DSLs by Magnus C.

When will DSLs be mainstream? by Johan den Haan Posted
  1. Back to top

    When will DSLs be mainstream?

    by Johan den Haan

    These workbenches are a real stimulant for DSL development. I wonder how long it will take until the design and use of DSLs is just mainstream...

    I guess we're going to see a split between developers going 'meta', i.e. they are going to use DSL tools to produce Model-Driven Software Factories, and developers just using that factories in which they 'program' or 'model' using domain-specific abstractions.

Educational Content

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.