Root CUIP Metalevel

Posts tagged “cg2012”.

CG2012 Summary, day 3

CG2012 Summary, (part III)

This is the last post in my series of summaries of the Code Generation 2012 conference. After having reviewed the LWC day and days one and two, this third and last day concludes my personal report. Some of you will remember my intense tweeting in such days under the hashtag #cg2012, but I had a good reason: such tweets help me document the event and log the activities, which actually makes the process of writing these summaries possible. So, let’s stop meta-posting and dive into the content of the day D.

Friday 30th, day 3

The last day of the conference started with the keynote “Speed and Innovation through Architecture” by Jan Bosch (@JanBosch). This was very provocative in that it addressed MDSD and Software Architecture within the context of innovation in industrial contexts and presented it from a business perspective: opposite but complementary to the technical content that usually drives a CG session. Jan supported his talk with examples drawn from Nokia, Siemens, and other companies he is either currently working with or worked with prior to his current academic position.

Some of the pearls (argued by the audience in twitter latter) in his talk were:

  • The market is moving from products to services
  • The need for the speed: R&D departments should have very short innovation cycles. Speed is the primary feature to achieve. (Time to Market)
  • Moving faster: no efficiency improvement will outperform cycle time reduction.
  • Traditional SW development does not scale. We need to change the way we create SW.
  • Amazon releases new software every 11 seconds…
  • R&D as an Experiment System
  • Decisions should be based on DATA, not opinions
  • Learning: the company running the most experiments against the lowest cost per experiment wins
  • There are things you can’t predict until you perform tests
  • Lean and Agile as Scale: as a dancing elephant (see the photo in the slides)


Some tweets reactions about it:

  • @delphinocons: Reducing dev. cycle time is 10x more beneficial than improving dev. efficiency I can see him build the case for MD(S)D from here. #cg2012
  • @tvdstorm: No more heavy process. This is going the way of the dinosaurs. @JanBosch #cg2012
  • @stevekmcc: @JanBosch 10% more revenue vs. 10% less dev costs (“efficiency”) assumes rest of org has zero incremental cost & demand is infinite #cg2012
  • @delphinocons Amazon releases new software every 11 seconds… wow. @JanBosch @ #cg2012
  • @pmolinam  “Learning: the company running the most experiments against the lowest cost per experiment wins” @janbosch #cg2012 #innovation –> Google
  • @tvdstorm: @JanBosch’s keynote: crowd sourcing the scientific method at a very high speed. Continuous integration -> deployment -> AB testing. #cg2012
  • @pmolinam Arquitecture goals accordingly to @janbosch Simplify, Decoupling, Lean and agile at scale, End to end quality, fight design erosion #cg2012
  • @pmolinam “Interconnected teams and organizations asymptotically reduce productivity to zero” -> Twitter? @janbosch #cg2012 #innovation
  • @pmolinam Decoupling: NO versions! only the deployed one! @janbosch #cg2012 #innovation <- Hard to achieve out of the web
  • @pmolinam Very great keynote! by @janbosch #cg2012 #innovation very inspiring and totally on-topic.
  • Great slide @janbosch #cg2012 implication http://t.co/OBiSKfjZ
  • @MarkDalgarno: Every engineer at @intuit spends at least 1 day a year with a consumer seeing how their products are used in practice. @janbosch at #cg2012

As commented, this was a great keynote with respect to rethinking the role of MDSD within business organizations and how MDSD is still a great and undiscovered lever to drive innovation inside a company from within the IT and R&D departments. Dear CIOs, take note.

After the keynote, time for a quick coffee and I move quickly to prepare my session on “Multichannel User Interfaces”

In this session, I presented some issues we are working on at Icinetic. When developing a new service or product, UIs are expensive to develop if you have to offer the service in the leading edge mobile platform. The market is fragmented and thus provides several competing platforms and technologies with which to build a UI: XAML/C#, JavaFX/Java, Android, Objective-C/Cocoa, HTML5/Javascript with a JS framework, etc. The technology is changing quite fast and there is an open war to determine who will dominate the mobility space. Developing for any platform’s target UI technologies is neither cheap nor maintainable; is well: they don’t scale. It is in this context where Modeling device independent User Interfaces makes complete sense for business software. I demonstrated one of the prototypes we are building — called Oz UI — which utilizes my work on conceptual user interface patterns and is able to declaratively specify and prototype the UI then generate an implementation based upon any of a set of different widget technologies.

I got a very good feedback from the audience and feel that there is space for creating new tools in this domain that further alleviate the effort required by developers to work within the plumbing present in every development framework.

After the session and with the feeling of work completed, it was time for lunch and relaxation.

My last technical session was: tercnoC xatnyS srettaM (Concrete Syntax Matters) by Steven Kelly. The superbly selected title speaks for itself: when designing a new language there are many considerations to be taken into account in order to make the language pleasant for your users. Usability, concreteness, unambiguity, homogeneity, human perception of colors, forms and text are all relevant when addressing the design of a new language. The success of your language — measured in number of users — will be influenced greatly by these choices. See Steven in action.

Following our last coffee/orange-juice break, we all moved to the closing session: a panel discussion on “Code Generation – how far have we come in 5 years?”, lead by Andrew Watson, who introduced the topic and the panelists: Wim Bast, Steven Kelly, Darius Silingas, and Markus Völter.

Some ideas that were discussed:

  • MDSD Commoditization
  • Moving from a technical discourse to the necessary business discourse
  • The complexity of SW is ever growing; MDSD helps manage the complexity

Some interesting tweets about the panel supporting it:

  • @lmontrieux: Final panel session begins at code generation #cg2012 http://t.co/ffQOqyQ6
  • @delphinocons: Wim Bast: competing DSLs and LWBs is good for innovation, but bringing MD(S)D to the market requires commodity as well. #cg2012 closingpanel
  • @pmolinam @CompSciFact “Before you can design a good DSL, you have to understand the D.” On-topic for #cg2012
  • @tvdstorm: Need: live prototyping environments to be able to try out many different designs. Modeling needs immediacy, liveness and directness. #cg2012
  • @delphinocons Wim Bast/Darius Silingas: we have to avoid focusing too much on the technical side in favor of the business benefits of MDSD. Agree! #cg2012
  • @pmolinam On SoC and abstractions in DSLs #cg2012 Panel
  • @stevekmcc We are building the complex systems as ever. DSL helps in this race. #cg2012

Summing up

Finally, I present my personal conclusions on the State of the Art in MDSD based on what I have seen at CG2012:

  1. Two main lines of work have arisen in MDSD seen this year:
    • Bottom-up using a low-level general language and adding extensions that raise the abstraction level (eg.: mbeddr over C or Webr-DNQ over Java) for a specific purpose (domain), and
    • Top-down using a high-level DSL/language with a specific, targeted level of abstraction in order to describe a domain (hiding technology details and other concerns) upon which code generation is applied (samples: Radarc, IFML, MetaEdit+).
  2. More effort is needed to explain ROI for potential MDSD consumers (customers).
  3. Increasing complexity and diversity (mobile) in technology pushes the market ever closer to MDSD (as there are no other choices).
  4. Technology independence (one of the foremost qualities of systems developed via MDSD) provides even greater value when technology is undergoing rapid advances (see the mobile arena for example).
  5. Some MDSD technologies are powerful yet also rather complex; more work is required to simplify their presentation in order to increase user adoption.
  6. User Interface modeling is gaining momentum this year (with at least four sessions), that being a great and challenging DSL domain.
  7. The cloud provides opportunities for applying MDSD; this context already showing adoption in transparent infrastructure (see Mendix for a sample), deployment and configuration (cloud operation).
  8. Multi-core CPUs provide opportunities for executing DSL specs with efficient parallel processing.


As always, CG2012 was a great opportunity to take the pulse of the MDSD community, providing a good overview of the current problems and areas of research. If you want to get in the loop don’t miss the next edition — join us in 2013.

I want to thank the work of Robert McCall. He contacted me and volunteered for polishing my sometimes rusty English and making the full text more readable.

CG2012 Summary, Day 1

A personal CG2012 summary (part I)

Better later than never, here it is, finally, my summary on CG2012. In this serie of three post I will summarize my days at CG2012 in
Cambridge held on 28-30 of March. The full programme can be reviewed here http://www.codegeneration.net/cg2012/program.php.

Disclaimer: as usual CG2012 runs three sessions in parallel, so you are always losing ⅔ of the good stuff. In any way, this year we were able to alleviate this: attending with two more Icinetic colleagues (Rubén Jimenez  and Jonathan Cáceres) help in dividing the sessions and giving a full event coverage.

Day 1, Wednesday 28th

Ruben and I led one of the opening sessions for CG2012. In our talk Ruben presented in a practical way how the .NET platform has matured during these years and provided opportunities and enough base tools to use MDSD. Not been on the top of Eclipse/EMF is not an excuse anymore. In the demo time, Ruben shown also Radarc, our product at Icinetic to build and generate applications for different architectures. Slides of the session follows:

After the coffee break, I moved into the session “User Interaction Modeling: current status of the standardization process, from the requirements to the language” given by Marco Brambilla and Emanuele Molteni (from WebModels). Marco and Emanuele are pushing an standardization effort called IFML inside OMG to propose a UI standard based in their UI modeling experience. In the mid-term UML tools vendors could finally start adding support for UI Modeling and this is a good thing, per se. Other standardization efforts are on-going such us UIML in OASIS and Jean Vanderdonckt’s UsiXML in the W3C.

Time for lunch, and back to action. Enrico Persiani and Riccardo Solmi presented “Integrating model driven technologies in
the publishing industry”
. This was a very refreshing session, presenting a novel domain for MDSD: interactive books. Riccardo and Enrico presented the base XML used before for composing the books and how this approach become a maintenance nightmare also for each book. Using The Whole Platform they provided a projectional editor integrating images and colorization preview in a kind of WYSIWYG approach making the edition a more pleasant experience.

After that, I move on Markus Völter & Bernhard Merkle’s session on “mbeddr C: an MPS and model based, extensible version of the C programming language”.  Using MPS Markus and Bernard has extended the base C language to include safety and productivity features like unit tests support, type safe units, state machines, etc. Impressive bottom-up work inserting new features in a well-known language. mbeddr C have for sure real applications in the embedded software industry.

To end the day, Eric Jan Malotaux presented a very original case study. Under the title “Transforming a 15 year old model-driven application from C++ to Java” he presented the costs and migration efforts performed to migrate a legacy application modeled over a DB and generating C++ to a most modern EMF models and Java source code as output. Eric pointed out that many of the problems came from the different architecture (implicit) assumptions done in the source model. Not until understand it, they were able to solve the problems. Eric concluded that although it was not cheap and easy, it probably would be more expensive and painfuller if the source was only source code and not a model based with a unique semantic over it. Eric gave a great talk and was very prudent about giving only numbers he could backup with data.

This case, presented by Eric made me think twice about how MDD provides advantages years after it was build. At the end is always a problem of dealing with complexity: a model has lower complexity (more constraint) that pure source code.

We ended the evening in a more relaxed way in the nearby Castle Inn sharing good moments.

Summary: Language Workbenches Challenge 2012

LWC2012 logo

Two weeks ago, I honored the yearly tradition of traveling to Cambridge and join with my colleagues at the Code Generation Conference.

As commented before in this blog, this conference is something unique. It is not an academic oriented event: it has no papers and publications in the traditional way of an academic meeting. On the other hand, it shows live tools and samples of real technology in use in the industry and the latest research tools in the academia in the field of Software Modeling, Domain Specific Languages and Code Generation. If you want to meet and talk with the toolmakers this is definitely the place to come.

The event was intensively reported via twitter under the hashtags #cg2012 and #lwc2012.

In this first post I will review the LWC and write about CG2012 in the next one.

LWC2012

On Tuesday 27th, the 2nd edition of the Language Workbenches Challenge  took place. 32 of us meet there to see how 10 tools solved the Piping and Instrumentation problem. This year I was only an observer, no time from my side to prepare a solution, I hope to submit next year again.

Rui Curado presented his solution with AtomWeaver. He has added a graphical notation on the top of AtomWeaver in the late year. Great work.

Juha-Pekka Tolvanen shown a solution based in MetaEdit+. Based on the maturity of MetaEdit, the graphical nature of the problem and the experience of Juha-Pekka he excels his solution showing a use case of the system and later on going meta and showing us how it was done.

An UML solution was represented by Paul Zenden. Using Enterprise Architect as the base tool and complemented with Xtend/Xpand he was able to metamodel all the elements needed to describe the problem. He took advantage of the capabilities of the EA tool to add custom graphic symbols to the new symbols defined.

Tijs van der Storm presented a textual approach based on Rascal. Graphics were generated using an additional graphical library.

Alex Loh from Texas introduced us Ensō. Ensō is a new LW built on top of Ruby. Although a bit slow in its first version, it opens the doors a new way of LW taking advantage of the dynamic and interpretation capabilities of the Ruby language.

The Web is ubiquitous, and this issue is also reaching modeling concerns. Meinte Boersma in cooperation with Martin Thiede presented Más (Modeling As Service, más = means more in Spanish). Martin created and presented Concrete as a projectional editor based in Ruby and HTML5 in CG2011. Now Meinte has extended it to create a full web modeling environment targeting enterprise modeling.

Finally Marko Boger presented an implementation of the graphical language build using Spray. Spray is a project to provide textual DSLs to create graphical DSL on the top of Eclipse Graphitti.

Spray was conceived in the Castle Inn (our local CG reference pub) one year ago after a CG2011 session after people have the shared complaint about how painful and slow was to maintain GMF editors or to build them from scratch using Graphitti. Now one year later, Spray is a reality. Good job, very well done!

This edition was very diverse with respect a tools, approaches and solutions taken. Great workshop!

We ended the day with the traditional family photo. Special thanks to Angelo Hulshout for organizing it and Paul Zenden for proposing the challenge and the reference implementation (thanks Angelo for remember me it as it was).
See you next year!

LWC2012 family photo