<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Metalevel &#187; report</title>
	<atom:link href="http://pjmolina.com/metalevel/tag/report/feed/" rel="self" type="application/rss+xml" />
	<link>http://pjmolina.com/metalevel</link>
	<description>Abstraction based levitation</description>
	<lastBuildDate>Mon, 30 Apr 2012 06:55:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Code Generation 2011: a personal review</title>
		<link>http://pjmolina.com/metalevel/2011/05/code-generation-2011-a-personal-review/</link>
		<comments>http://pjmolina.com/metalevel/2011/05/code-generation-2011-a-personal-review/#comments</comments>
		<pubDate>Tue, 31 May 2011 10:50:17 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[Essential]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[User Interface]]></category>
		<category><![CDATA[cg2011]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[language workbench]]></category>
		<category><![CDATA[lwc]]></category>
		<category><![CDATA[report]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=702</guid>
		<description><![CDATA[Once again, back home after the most exciting till date edition of the Code Generation conference in the latest years. The co-allocation of the Language Workbenches Competition has been a great incentive to attract all of us to join and present alternatives to a great challenge in the domain of modeling and code generation. In [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, back home after the most exciting till date edition of the <a title="CG2011" href="http://www.codegeneration.net/cg2011/index.php">Code Generation conference</a> in the latest years. The co-allocation of the <a title="LWC2011" href="http://www.languageworkbenches.net/">Language Workbenches Competition</a> has been a great incentive to attract all of us to join and present alternatives to a great challenge in the domain of modeling and code generation.</p>
<p>In this long post, I want to share my personal view about these days, and for sure, take note it could be partial and subjective. So, be kind to review also the comments as seen by others like <a title="Johan LWC2011 review" href="http://www.theenterprisearchitect.eu/archive/2011/05/26/language-workbench-competition-2011">Johan den Haan</a>, <a title="Markus on LWC2011" href="http://voelterblog.blogspot.com/2011/05/language-workbench-competition-2011.html">Markus Völter</a>, <a title="Angelo LWC &amp; CG report" href="http://www.hulshout.nl/blog/2011/05/29/language-workbench-competition-2011-code-generation-2011/">Angelo Hulshout</a>, <a title="Marco on LWC2011 and CG2011" href="http://www.modeldrivenstar.org/2011/05/highlights-from-lwc-2011-language.html">Marco Bambrilla</a>, or <a title="About modeling workbenches" href="http://mariot-thoughts.blogspot.com/2011/05/about-modeling-workbenches.html">Mariot Chauvin</a> to cite a few and more expected to come. Find the majority of the pointers at the <a href="http://modeldrivensoftware.net/">http://modeldrivensoftware.net</a></p>
<p>In this edition, the conference has been deeply covered via twitter using <a title="CG2011" href="http://twitter.com/#!/search/%23cg2011">#cg2011</a> and <a title="LWC11" href="http://twitter.com/#!/search/%23lwc11">#lwc11</a></p>
<p>As expected, I will be only be able to comment about the sessions I personally have attended. Running three tracks in parallel always force us to choose one and miss two other great sessions.</p>
<p><span id="more-702"></span></p>
<h2>Day 0. The Language Workbenches Competition</h2>
<p>Ten tools were presented in a marathonian session exactly allocating 40 minutes per tool. The Angelo’s egg-timer was implacable: Whenever it rang reaching the agreed time, the speakers suddenly stopped talking unable to end a simple phrase.</p>
<p>The challenge was a competition without a winner or loser, mainly because there was no prize to win (may be next year a generous sponsor could change that). The main objective is to <strong>compare </strong>how different tools are able to complete a common problem facing modeling, model transformations and code generation to multiple platforms.</p>
<p>Johan den Haan has prepared a detailed report of the tools presented. <a title="Johan on LWC2011" href="http://www.theenterprisearchitect.eu/archive/2011/05/26/language-workbench-competition-2011">Take a look on it</a>.</p>
<p>From my side, I have created a <a title="LWC2011 feature matrix" href="https://spreadsheets.google.com/spreadsheet/ccc?key=0AoxxO-Frx5JsdFcwMGQtdzBjNzhfQUxZT1dJSWdtYXc&amp;hl=es">feature matrix</a> for comparing the different approaches stressing what I see as different in each tool. It is not complete: some information is missing and some other not yet contrasted so take it as a beta version to be improved.</p>
<p>With respect to my beloved tool <a title="Essential" href="pjmolina.com/essential">Essential</a>, I have to say that I received a very nice feedback from the audience. See a sample of the twitted comments:</p>
<p style="padding-left: 30px;"><strong>kthoms:</strong> @pmolinam Has a high voltage notebook &#8211; projector crashed on plugging in. Now let&#8217;s see how he could improvise the situation #lwc11</p>
<p style="padding-left: 30px;"><strong>stevekmcc</strong>:  @pmolinam Showing #Essential: major theme is separation of concerns, so opposite to Rascal #lwc11</p>
<p style="padding-left: 30px;"><strong>stevekmcc:</strong> #Essential looks very clean compared to other text or text-projection workbenches #lwc11</p>
<p style="padding-left: 30px;"><strong>delphinocons:</strong> RT @stevekmcc: #Essential looks very clean compared to other text or text-projection workbenches #lwc11 &lt;== I agree. Relaxing to the eyes.</p>
<p style="padding-left: 30px;"><strong>delphinocons:</strong> #lwc11 The Essential metamodel is smaller than EMFs, and a little larger than MetaEdit+&#8217;s</p>
<p style="padding-left: 30px;"><strong>meinte37:</strong> @pmolinam is the first to finish before the egg timer at #lwc11. That&#8217;s because he cuts down to the Essential-s <img src='http://pjmolina.com/metalevel/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p style="padding-left: 30px;"><strong>JohanDenHaan:</strong> @pmolinam nice presentation and demo, good mix of slides and demo. Great timing!</p>
<p style="text-align: center;"><img class="aligncenter" title="LWC 2011 family photo." src="http://i233.photobucket.com/albums/ee316/angelopa/DSC00667.jpg" alt="" width="500" /></p>
<p style="text-align: center;">&nbsp;</p>
<h2>Day 1. Code Generation 2011 starts</h2>
<p>I started the day giving an initial talk about <strong>Introduction to Model Driven Software Development</strong>.</p>
<div style="width:425px" id="__ss_8150087"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/pjmolina/introducing-mdsd" title="Introducing MDSD">Introducing MDSD</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8150087" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/pjmolina">Pedro J. Molina</a> </div>
</p></div>
<p>Later on, Obeo guys (Mariot Chauvin &amp; Stéphane Begaudeau) presented how to use Obeo Designer to create sensible graphical DSL tools on the top of the Eclipse framework. Obeo uses model interpretation over the EMF models to create in runtime GMF based editors.</p>
<p><strong>Panel: Build or Buy &#8211; who should develop and own your DSLs and generators?</strong></p>
<p>We played a nice game with the following roles:</p>
<ul>
<li>Juha-Pekka Tolvanen (MetaCase), the moderator</li>
<li>Jos Warmer (Independent) , the homegrow tool maker</li>
<li>Pedro J. Molina (Capgemini) , the consultant</li>
<li>Johan den Haan (Mendix), the tool vendor</li>
</ul>
<p>More soon than later, Andrew Watson and Markus Völter join with the rest of the audience in the discussion. Of course, there is not an easy answer to that question and depends a lot of the particular context and requiring thinking about, but not only on:</p>
<ul>
<li>the experience of the in-house developers with MDD</li>
<li>the level of criticality of the process for the business to be automated (core or non -core to business)</li>
<li>the existence of tools able to provide the requested features</li>
<li>the need to split the business process from the current technology</li>
</ul>
<p>&nbsp;</p>
<p><strong>Type Systems for DSLs.</strong></p>
<p>Markus Völter presented a nice library he has been creating to help with the type checking in expressions of DSLs. After a gentle introduction to type checking, he introduced three different approaches to the problem:</p>
<ul>
<li>recursive type-checkers,</li>
<li>union based (a la MPS) and</li>
<li>table driven (a declarative way of the first one).</li>
</ul>
<p>&nbsp;</p>
<h2>Day 2. Getting speed</h2>
<p><strong>Terrence Parr Keynote</strong> was one of the more awaited talks in the conference. Many of us use their tools on a daily basis like <a title="ANTLR" href="http://antlr.org/">ANTLR</a> and <a title="StringTemplate" href="http://stringtemplate.org/">StringTemplate</a>. So having him here is quite special. In his keynote titled “Why program by hand in five days what you can spend five years of your life automating?” he let us some pearls like the following ones highly twitteable:</p>
<ul>
<li>“XML is not for humans beings, just for machines.” (Donald Knuth, the father of TeX support this, and I am not going the one to contradict this)</li>
<li>“Programmers are lazy.” Yes, we are. We don’t like repetition of tasks, trivial or not, because we get bored, so we always try to automate things. And this is our main driver and source of fun.</li>
<li>“Automate the things more prone to human errors”. Automate the tedious work!</li>
<li>Running a test does not increase the quality of the code.</li>
</ul>
<p><strong> </strong></p>
<p><strong>MetaEdit+ Hands On</strong></p>
<p>MetaCase MetaEdit+ was of my pending tools to try from previous editions of CG. I had the tool, I had the chances but not the inline tutor to allow me to get advantage of the tool. Risto, Steven and Juha-Pekka did a great work in the “hands on” session been able to not to left away any of the practitioners. They have did this lots of time and they are good teaching it.</p>
<p>Definitely, the learning curve of MetaEdit is not big, but for sure, you need the initial proper training to get the grasp of the tool to start creating your own graphical DSLs. Been a tool implemented in Smalltalk and using a repository, MetaEdit provided an edition experience quite different to the ones more used to edit traditional files.</p>
<p><strong>Generating Graphical DSLs</strong></p>
<p>Marko Boger, one of the fathers of the Poseidon tool, presented his work about applying DSLs to describe graphical DSLs. The idea was well received, and later on in the local pub called The Castle Inn an informal Birds of a Feather session was settled to create the Spray project to join forces and create a common core DSLs to help in generating graphical DSLs.</p>
<p><strong>Modeling the UI</strong></p>
<p>To end the day I gave a talk about how we take in account to model the User Interface of a business application. The topic is important because the IU is not always pondered as it should be. The UI is the only aspect the user will see from any system we build. Approaches to modeling and code generation based in a pattern based approach were presented with the help of briefs live demos using Essential and Io tools.</p>
<div style="width:425px" id="__ss_8150041"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/pjmolina/modelling-the-user-interface" title="Modelling the User Interface">Modelling the User Interface</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8150041" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/pjmolina">Pedro J. Molina</a> </div>
</p></div>
<p><span style="font-size: 20px; font-weight: bold;">Day 3. Closing a great edition</span></p>
<p><strong>Ed Merks Keynote</strong></p>
<p>Ed is the leader of the<a title="EMF" href="http://www.eclipse.org/modeling/emf/"> Eclipse Modeling Framework</a> based in Montreal and now working also for Itemis. In his keynote he remarked some of the prejudices people use to have against code generation and (UML) modeling, leaving also some great quotes:</p>
<ul>
<li>“Resistance is futile: Best practices will be assimilated by code generators.”</li>
<li>“XMI sucks because XML sucks. XMI sucks for transitivity.”</li>
</ul>
<p>Ed talks reinforces my idea that, talking about software, Europeans are usually more instructed in the university in formal methods and theories where Americans uses to be quite more practical and take a more empirical approach to software engineering or computer science.</p>
<p>It is interesting to see that mostly all the participants in the LWC with the exception of Intentional are Europeans. Well, Charles Simony (the owner) and Mats Helander (the presenter) both from Intentional are also Europeans. So, there is no interest in Language Workbenches in other continents apart from Europe?</p>
<p><strong> </strong></p>
<p><strong>Goldfish Bowl: “Code Generation as a normal programming practice”</strong></p>
<p>Jos Warmer lead this session were all the interested participants shared thoughts about how to integrate code generation with traditional styles of development.</p>
<p>How to create a good template: Go to your best developers and tell them: “write this DAO code file as it were the last time in your life you are going to write it”. Then abstract it and you got it. If the further in time found a bug, they can always came back and fix the template also.</p>
<p><strong>Final panel: “Models, DSLs, Transformations: The Next 5 years”</strong></p>
<p>In the closing plenary session, future directions and incoming challenges were addresses by the panelist and the audience.</p>
<ul>
<li>Andrew Watson focused on resolving business problems instead of technological problems.</li>
<li>Jos Warmer encourages us to build better tools and better languages.</li>
<li>Johan den Haan pinpointed some incoming trends: Mobile, cloud, social, multi-core and poliglot languages.</li>
<li>Wim Bast commented about the need for parallelization and the best way to achieve it is to move to a more declarative DSLs allowing us to exploit the intrinsic parallelization in the execution of such algorithms. Wim pointed out also about the difficulty of making prediction about the future.</li>
</ul>
<p>So, I put my two cents remembering the genial quote of <a title="Alan Kay" href="http://en.wikipedia.org/wiki/Alan_Kay">Alan Kay</a>: “The best way to predict the future is to invent it”.</p>
<p>My position is that we have the tools, we have the knowledge… so, we should put all our efforts in improving the tools. Good tools will make MDD mainstream soon or later. So, I want to see it happening: let’s improve our tools now better sooner than later.</p>
<h2>Conclusions</h2>
<p>The <strong>LWC</strong> has been a great idea made real. Having the opportunity to compare solutions and styles of tools has been quite productive for all of us. All the participants were happy with the idea of repeating next year and the next edition is looking for the next challenge.</p>
<p><strong>Twitter</strong> this years has expanded the real-time conference far away that the walls of the College. Colleagues like Rui Curado, Xavier Seignard, Jordi Cabot, Angel J. Lopez or the AltNet Hispano group to cite a few I am aware were tracking the conference and taking part via twitter. This enriches the experience and makes it more participative.</p>
<p>Some tools, highly integrated with the Eclipse environment were suffering during the conference live demo failures. This is not an exception, but a warning signal that some task that should be easy are getting complex and complex when the number of dependencies to run a simple task is out of control. The <strong>friction level</strong> of these environments is definitely something to keep as low as possible. Model interpretation versus traditional code generation can be helpful also to reduce startup times and opening another instance of the same environment.</p>
<p>The new born project <strong><a title="Spray project" href="http://code.google.com/a/eclipselabs.org/p/spray/">Spray</a></strong> (as reported by <a title="Karsten on Spray" href="http://kthoms.wordpress.com/2011/05/30/spray-a-quick-way-to-create-graphiti/">Karsten</a>) can be quite helpful as a neutral DSL definition for describing graphical DSL in an technological agnostic way. The risk however is if it is too close to a certain technology stack like GMF or Graphiti it will only be used in such context. To my understanding, a Spray definition should be implementable also in Microsoft DSL Tools  to put a extreme counterpart.</p>
<p>If a contest for the novel tool of the year will have ever existed in CG, IMHO this year had been awarded to <strong>The Whole Plaftorm</strong> by Riccardo Solmi and Enrico Persiani. They have a nice and cool looking projectional tool that was deeply unknown to all of us. So, welcomed to the club!</p>
<p><strong>XML</strong> is definitely not for humans (Terrence Parr) and XMI sucks for XML transitivity (Ed Merks).</p>
<p>Finally <strong>Mark Dalgarno</strong> and <strong>his team</strong> were <strong>superb</strong> organizing all the logistics to make all of this possible. Thanks to everyone and see you there next year.</p>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2011/05/code-generation-2011-a-personal-review/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>My impressions about Code Generation 2009</title>
		<link>http://pjmolina.com/metalevel/2009/06/my-impressions-about-code-generation-2009/</link>
		<comments>http://pjmolina.com/metalevel/2009/06/my-impressions-about-code-generation-2009/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 09:41:18 +0000</pubDate>
		<dc:creator>Pedro J. Molina</dc:creator>
				<category><![CDATA[Code Generation]]></category>
		<category><![CDATA[DSL]]></category>
		<category><![CDATA[MDD]]></category>
		<category><![CDATA[CG2009]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[report]]></category>

		<guid isPermaLink="false">http://pjmolina.com/metalevel/?p=120</guid>
		<description><![CDATA[Once a year I flew to Cambridge, on the United Kingdom. It is the place for my favorite conference in the last three years: Code Generation! In this last edition I am especially happy to see again a lot of well-know faces working in the same stat-of-the art topics. Everyone coming to CG believes on it, so [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://www.codegeneration.net/cg2009/"><img class="alignright" style="border: 0px initial initial;" title="CG2009 logo" src="http://www.codegeneration.net/cg2009/images/CG2009logo175x43.gif" border="0" alt="Code Generation 2009" width="175" height="43" /></a><br />
Once a year I flew to <a title="Cambridge Location" href="http://maps.google.es/maps?f=q&amp;source=s_q&amp;hl=es&amp;geocode=&amp;q=cambridge+uk&amp;sll=39.453227,-0.360596&amp;sspn=0.013818,0.019312&amp;ie=UTF8&amp;ll=52.203925,0.124969&amp;spn=0.021935,0.038624&amp;z=15" target="_blank">Cambridge</a>, on the United Kingdom. It is the place for my favorite conference in the last three years: <strong><a title="Code Generation 2009" href="http://www.codegeneration.net/cg2009/" target="_blank">Code Generation</a></strong>!</p>
<p>In this last edition I am especially happy to see again a lot of well-know faces working in the same stat-of-the art topics. Everyone coming to CG <em>believes on it</em>, so it easy to jump and talk directly about the core and heavy issues: you don&#8217;t need to make any additional effort to convince your audience about the goodness of modeling and code gen.</p>
<p>To me, it is remarkable important to have the chance to meet with MDD, DSL and MDA practitioners and interchange ideas, comment on latest new tools &amp; <span lang="EN-US">breakthroughs</span>, and give and receive first-class feedback!</p>
<p>I want to share some of the main shared ideas I got back home in my luggage. So, if you are interested in it, please keep reading.<span id="more-120"></span></p>
<div>
<h3><strong>Model Discovery</strong></h3>
<p><span style="font-weight: normal;">I meet <a title="Stuart Kent's blog" href="http://blogs.msdn.com/stuart_kent/archive/category/9779.aspx" target="_blank">Stuart Kent</a> (Microsoft) and I was surprised by his tools for Visual Studio 2010 Team Edition designed for model discovery. These tools are capable of selecting the source code of a solution and search for all the <span lang="EN-US">dependencies </span>in the code. The tools produces an XML graph with the dependences and Visual Studio is able to draw them (a la <a title="Graphviz" href="http://www.graphviz.org/" target="_self">Graphviz</a>) and do drilldown from assemblies to namespaces, classes &amp; methods. Nice to tool to have to check the real architecture of your production code.</span></div>
<div>I had to do this manually once: looking for cross references in more than 2.500 mini-applications of legacy code and finished it finally doing some kind of regex searching for the references, creating a text based graph and display it all with the quoted library GraphViz and some clustering techniques.</div>
<div>
<h3><strong>Microsoft OSLO</strong></h3>
<p><strong><span style="font-weight: normal; font-size: 13px; ">Stills on CTP stage. we need to await a further more to see the full features of the final version of <a title="Microsoft OSLO" href="http://msdn.com/oslo" target="_blank">OSLO</a>. But it is a really needed approach on the Microsoft side to have tools to create text DSL as the Eclipse guys have with XText or openArchitectuware. In this way, my lab tests with MGrammar looks promising.</span></strong><br />
It was a pity not to have the Redmon guys presenting their tools in first person. They will have received quality feedback for sure. May be in the next edition?</div>
<div>
<h3>Microsoft DSL Tools</h3>
<p><span style="font-weight: normal;">The team of Microsoft Cambridge Research is loyal to the CG conference, and every year they bring us the new features planed for the next edition. I have to said that <a title="Jean-Marc Prieur's blog" href="http://blogs.msdn.com/jmprieur/" target="_blank">Jean-Marc Prieur</a> convinced me to download and test the <a title="Visual Studio 2010 Beta 1" href="http://msdn.microsoft.com/en-us/vstudio/dd582936.aspx" target="_blank">VS2010 Beta 1</a> to test the new DSL tools we were awaiting for so long!</span></p>
<p>I took the opportunity to ask Jean-Marc for more integration between DSL Tools and OSLO because having such level of integration should be wonderful for integrating visual and textual DSL in the same model! Later on in the bar, we had a productive discussion about it with Jean-Marc and Stuart Kent.</p>
<p>There was general consensus with my java colleagues in the problems when creating <a title="Eclipse Ghraphical Modeling Framework" href="http://www.eclipse.org/modeling/gmf/" target="_blank">GMF</a> based <span lang="EN-US">diagramming</span>. More work should be done on it to improve the <span lang="EN-US">maintainability </span>of visual DSL created with Eclipse GMF. <span lang="EN-US">Fortunately</span>, DSL Tools is better polished in this aspect.</div>
<div>
<h3>Partitioning Models for Scalability</h3>
<p><span style="font-weight: normal;">This year lots of us came for solutions for making model edition scalable. I am specially happy to see this happen:</span></div>
<div>
<ul>
<li><span style="font-weight: normal;"><a title="Markus Völter's blog" href="http://voelterblog.blogspot.com/" target="_blank">Markus Völter</a> (Independent/Itemis) &amp; <a title="Steven Kelly's blog" href="http://www.metacase.com/blogs/stevek/blogView" target="_blank">Steven Kelly</a> (Metacase) discuss in their great keynote the need for modulable, partitionable and composable models.</span></li>
<li><span style="font-weight: normal;"><a title="Jos's site" href="http://www.klasse.nl/">Jos Warmer</a> (Ordina) presented us the implementation of the </span><strong>CrossX Broker</strong><span style="font-weight: normal;"> for the Eclipse environment allowing to partition models inside Eclipse and still having the possibility to have references to external defined parts. To be honest, he had already implemented this a year before in Visual Studio.</span></li>
<li><span style="font-weight: normal;"><a title="Jean-Marc Prieur's blog" href="http://blogs.msdn.com/jmprieur/" target="_blank">Jean-Marc</a> (Microsoft) explained about the same similar feature we were demanding from so long in Microsoft DSL Tools: the </span><span style="font-weight: normal;"><strong>Model Bus</strong></span><span style="font-weight: normal;"> for allowing references between DSL Models.</span></li>
<li><span style="font-weight: normal;">Also I presented a technique and a tool demo for partitioning models in chunks and allow applying Separation of Concerns using partials definitions of models and a merge engine.</span></li>
</ul>
</div>
<div><span style="font-weight: normal;">Amazing!: all of us so well aligned and without preparing it!</span></div>
<div>
<h3>Mod4j</h3>
<p><span style="font-weight: normal;">Jos Warmer &amp; Johan Vogelzang (Ordina) presented also their current work on modeling with textual languages, small DSL and Eclipse integration for business applications. Still work in progress on <a title="Mod4j" href="http://www.mod4j.org/" target="_blank">mod4j</a> but more its going to come.</span></div>
<h3><strong>XText &amp; openArchitectuware</strong></h3>
<div><span style="font-weight: normal;">The guys from <a title="Itemis" href="http://www.itemis.de/" target="_blank">Itemis</a> presented a lot of work in the conference around <a title="XText" href="http://www.eclipse.org/Xtext/" target="_blank">XText</a> (a Hands-On Workshop), <a title="openArchitectuware" href="http://www.openarchitectureware.org/" target="_blank">openArchitectuware</a> and their industrial experience with the Germany Stock Exchange (Deutsche Boerse AG).</span></div>
<h3><strong>Ruby RGEN</strong></h3>
<div><span style="font-weight: normal;">Martin Thiede presented a fresh approach to code generation based on Ruby (<a title="Ruby - RGen" href="http://ruby-gen.org/">RGen</a>) and the natural meta-programming features of the Japanesse gem. Martin applies his work to create <span lang="EN-US">embedded </span>C software for the automotive industry. Our session collided in the time slot (parallel tracks), but he was so kind to show me his material in the BoF time slot. Thank for your kind demonstration Martin! Take a look also to a nice article on <a title="RGen on InfoQ" href="http://www.infoq.com/articles/thiede-ruby-modelling" target="_blank">InfoQ</a>.</span></div>
<div>
<h3>Templates engines</h3>
<p><span style="font-weight: normal;"><a title="Kathleen Dollard" href="http://www.linkedin.com/pub/kathleen-dollard/3/972/506" target="_blank">Kathleen Dollard</a> (AppVenture) presented a nice session about Template Specialization comparing XSLT, ASP based templates engines and Microsoft T4 templates. We all agreed in never come back to XSLT due to <span lang="EN-US">maintainability </span>issues. I suggested Kathleen to include in the comparison other approaches like <a title="StringTemplate" href="http://www.stringtemplate.org/" target="_blank">StringTemplate</a>. That helps a lot when generating code to keep ourselves focused in the complexity of the transformation and not in the complexity of the template engine.</span></div>
<div>The T4 engine (included in MS DSL Tools) is a powerfull dark-beast: it can be lots of things, but may be too much for me, indeed. So, I preffer to take a different and more simplier and disciplined approach to code generation using the StringTemplate way. Also discussing about T4 with Jean-Marc, he agreed that providing best practices when dealing with templates for code generation can help T4 users.</div>
<div>
<h3>Jetbrain&#8217;s Meta Programming System (MPS)</h3>
<p><span style="font-weight: normal;">Presented by Markus &amp; <a title="Konstantin Solomatov's blog" href="http://solomatov.wordpress.com/" target="_blank">Konstantin Solomatov</a> (Jet Brains), <a title="MPS" href="http://www.jetbrains.com/mps/index.html" target="_blank">MPS</a> was the surprise of the conference. MPS provides a new way of editing code (or models, the barrier starts to blur) based in trees forms (non linear text). The code (or model) is created as a tree in the toll. Can not be edited with a traditional editor anymore, however makes <span lang="EN-US">unnecessary </span>the usage of parsers. Quite, quite <span lang="EN-US">interesting </span>and a future line for language workbenches investigation! There are some usability problems and you can notice it when some tree refactoring in ongoing (for example when changing your input from <tt>(1+2)*3</tt> to <tt>1+2*3</tt> .</span></div>
<div><span style="font-weight: normal;">Still an ongoing work, but quite promising. Some people in the audience said &#8220;it&#8217;s like the <a title="Intentional Programming" href="http://www.intentsoft.com/" target="_blank">Intentional sw</a>, but working&#8221;. I don&#8217;t know, really: we will see it when Intentional finally show its product.</span></div>
<div>
<h3>Better tools for M2M</h3>
<p>Model to Text (M2T) technology is good enough for the mayority of the uses cases you will find.</p></div>
<div>However Model to Model transformations (M2M) are a hot topic and will continue be till find more natural formalisms to declare, test, debug &amp; eficiently execute as simple as posible the mapping for our desired transformations.</div>
<div>
<div>
<h3>The role of OMG, MDA and the standarization</h3>
<p>Is also nice to have in this conferece people like <a title="Andrew Watson's page" href="http://homepage.ntlworld.com/ajwatson/" target="_blank">Andrew Watson</a> (OMG) and <a title="Steve Cook's blog" href="http://blogs.msdn.com/stevecook/" target="_blank">Steve Cook</a> (OMG expert, first on the IBM side and now at the Microsoft side) to see how the organization evolves MDA and related standards.</div>
</div>
<div>Lot&#8217;s of us recognized the value of UML, although the so big espefications, sometimes <span lang="EN-US">ambiguous </span>semantics and the overloading of the profiles are always a problem for people to fully-understand the semantics behind the pictograms.</div>
<div>For that reason, whenever our domain is out of the scope of the UML (let say User Interfaces to cite one quite clear) some of us prefer to create a custom DSL to deal with it instead of extending and forcing UML.</div>
<div>
<h3>Some open problems for further investigation</h3>
<ul>
<li>Formalism and efficient technology for M2M transformations</li>
<li>Debugger capability on models</li>
<li>Schema evolution / Model versioning</li>
<li>DSL integration / composition</li>
<li>Better integration of visual, textual, tabular, form based representation in model editors when needed</li>
<li>Standarization of models and tool chains</li>
<li>And more&#8230;</li>
</ul>
</div>
<div>Of course, there were much more, but four tracks in parallel only allows me to attend to one quarter of the content that was presented. More than once, I wanted to be in four sessions at the same time, but was not possible for me, not yet. <img src='http://pjmolina.com/metalevel/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </div>
<p>To sum up, if MDD/MDA/DSL/code generation is on your mind, don&#8217;t forget to take a look to Code Generation on the next edition!</p>
<p>Thanks to all participants for making it possible!</p>
<p>And specials thanks goes to <a title="Mark Dalgarno's blog" href="http://blog.software-acumen.com/" target="_blank">Mark Dalgarno</a>, Magg &amp; <a title="Andy Moorley" href="http://www.linkedin.com/in/andymoorley" target="_blank">Andy Moorley</a> for their work on the organization to make this a total success.</div>
]]></content:encoded>
			<wfw:commentRss>http://pjmolina.com/metalevel/2009/06/my-impressions-about-code-generation-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

