This is the kickoff of my new blog on DSLs, modeling and programming! There are already pages on RGen and Concrete, but for a longer time now I really have been missing a central place to write about my thoughts and projects. So here it is! But before I start to add new things I think it might be a good idea to quickly summarize what happened before and what is spread over several other places on the net.
My “career” in modeling really began with the RGen project in 2006. I had started working on this Ruby based modeling framework after about 2 years of Eclipse/Java based modeling and code generator development. The idea was to use Ruby’s great capability for internal DSLs to work with models and metamodels in a very lightweight and efficient way. In the beginning, this was really a play project.
But then in 2007, I got the chance to use RGen as the basis for an inhouse modeling tool in the automotive domain. This was when the framework really matured. I fixed many bugs and made it a lot faster. The inhouse tool was quite successful and is still in use today. There is another blog post on our new company’s website with more details on that tool.
In 2009, I wrote an article on RGen on InfoQ and presented it at the Code Generation Conference in Cambridge. RGen was quite alien next to the existing solutions and frameworks and it didn’t feature any DSL specific editor or IDE. I personally don’t like the idea of (heavy weight) IDEs too much but I wanted to cover the field of user guidance. So at the end of the conference I had the plan to create a projectional web based model editor. I picked this idea because it seemed to be pretty new and because I thought that web browser technology could help a lot in creating a really lightweight and flexible solution. After all, the web (and the cloud) appear to have a promising future as tool platform in general.
After working on the web based editor for half a year, I published a screencast on Concrete in early 2010 and gave another talk at Code Generation Conference, this time introducing my new editor. People liked the idea, but most of them didn’t know what they could use it for. In November 2010 I gave a talk on RGen and Concrete at the 10th International Ruby Conference in New Orleans and I wrote another article on InfoQ. Again, people being somewhat amazed but most of them without a clue what this could be useful for.
In the meantime, the RGen based inhouse tool needed a brush-up and I decided to create an external DSL framework for RGen. So in 2011 I came up with RText, a generic textual syntax for models and a Ruby based implementation of it plus an Eclipse plugin. RText as well as RGen is now in use in serveral large scale projects and is doing a good job. Due to a lack of time I didn’t get around to actually publish it and I only made the first official release a few weeks ago. So one of the future topics of this blog will certainly be RText.
Early this year, Concrete took part in the Language Workbench Competition 2012. This was initiated and strongly pushed by Meinte Boersma who had picked Concrete as the basis for his domain model workbench called “Más”. His contribution to the competition is a graphical language for the domain of “Piping & Instrumentation”. In order to support this in Concrete, I added support for graphical connectors (lines you can drag with the mouse). This and other new features still await presentation to the public, a task which I hope to accomplish soon here on this blog.