<?xml version='1.0' encoding='UTF-8' ?>
<rss version="2.0" xmlns:admin="http://webns.net/mvcb/" xmlns:blogChannel="http://backend.userland.com/blogChannelModule" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:icbm="http://postneo.com/icbm" xmlns:includedComments="http://www.laudably.com/rss2-comments" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/">
	<channel>
		<title>Steven Kelly on DSM</title>
		<link>http://www.metacase.com/blogs/stevek/blogView</link>
		<description>Domain-Specific Modeling: A Toolmaker Perspective</description>
		<webMaster>stevek@metacase.com</webMaster>
		<lastBuildDate>Sun, 21 Dec 2008 00:18:33 +0200</lastBuildDate>
		<admin:generatorAgent rdf:resource="http://www.cincomsmalltalk.com/CincomSmalltalkWiki/CSTBlogModule"></admin:generatorAgent>
		<admin:errorReportsTo rdf:resource="mailto:stevek@metacase.com"></admin:errorReportsTo>
		<dc:language>en-us</dc:language>
		<dc:creator>Steven Kelly</dc:creator>
		<dc:rights>Copyright 2005- Steven Kelly</dc:rights>
		<dc:date>2008-12-21T00:18:33+02:00</dc:date>
		<item>
			<title>DSL Tools Lab shows pain of constraints in C#</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3403962406</link>
			<category>DSM-tech</category>
			<pubDate>Wed, 12 Nov 2008 17:06:46 +0200</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"> 

<p> Microsoft have a new 

<a href="http://code.msdn.microsoft.com/DSLToolsLab"> DSL Tools

Lab</a> for beginners to learn how to use DSL Tools in one day. Full

marks to Jean-Marc Prieur for starting off by explaining that

modeling languages should be based on the problem domain, not the

solution domain:</p> 

<blockquote> [Y]ou want to create a vertical language that is

suitable for your business, and from the models that the language

manipulates, generate the code for your business Framework.

Nevertheless, because it is difficult to ensure that everyone who

takes this training knows the professional tasks that are addressed

by the targeted business Framework, we will settle for a horizontal

(that is, technical) DSL.</blockquote> 

<p> The example language is thus a simple state machine (why is it always a state machine?!). The part that interested me is <a href="http://code.msdn.microsoft.com/DSLToolsLab/Release/ProjectReleases.aspx?ReleaseId=1698"> 

Part 3, Validation and coherence of the model</a>. Let's look first

at how to display the label for a transition. A transition

specifies an Event that causes it, a guard Condition that must be

true for it to be followed, and an Action that is taken when it is

followed. All of these are written in the example as C# code

snippets (tut tut :->). They want to display them as one single

label, formatted as "Event [Condition] / Action".</p> 

<p> Here's how to do it in DSL Tools: four pages of dense (8 pt font!) instructions and code, total 242 lines:</p> 

<p> 

<img alt="Formatting a transition label the DSL Tools way" src="http://www.metacase.com/blogs/stevek/images/DSLLabTransitionLabel.png"/> 

 

</p> 

<p> And here's how to do it in 

<a href="http://www.metacase.com/products.html">MetaEdit+</a>:

three lines of 

<a href="http://www.metacase.com/support/45/manuals/mwb/Mw-5_3.html">

MERL</a> in the transition symbol's label:</p> 

<blockquote> 

<tt> 

<font color="darkgreen"> :Event</font> 

<br/>  if 

<font color="darkgreen"> :Condition</font> then 

<font color="darkred"> ' ['</font> 

<font color="darkgreen"> :Condition</font> ']' endif 

<br/>  if 

<font color="darkgreen"> :Action</font> then 

<font color="darkred"> ' / '</font> 

<font color="darkgreen"> :Action</font> endif</tt> 

</blockquote> 

<p> About 10-15% of the DSL Tools solution is taken up by what I'd say is a really bad idea: storing the calculated label as a property in the transition alongside the Event, Condition and Action -- effectively duplicating that information. This also means they need to be able to parse the syntax of the label if it is edited, to update the other three properties.</p> 

<p> Next, let's look at how to ensure there is only one Initial

State. First, the DSL Tools way: just into the 4th page of 8pt

instructions and code, total 200 lines:</p> 

<p> 

<img alt="Ensuring only one Initial State the DSL Tools way" src="http://www.metacase.com/blogs/stevek/images/DSLLabInitialState.png"/> 

 

</p> 

<p> And here's how to do it in MetaEdit+: a simple 

<a href="http://www.metacase.com/support/45/manuals/mwb/Mw-2_5_6.html#Heading409">Occurrence Constraint</a> for Initial State in graphs of type State

Diagram:</p> 

<blockquote> 

<strong>Initial State</strong> may occur at most 

<strong>1</strong> time</blockquote> 

<p> The lab goes on to mention several other possible constraints and checks, but doesn't show you how to implement them (presumably since the intention is to finish it in one day). Here they are, along with how to implement them in MetaEdit+ -- I just tried, and it took just over a minute to do all five:</p> 

<ul xmlns="http://www.w3.org/1999/xhtml"> 

<li> Final States should not have an exit transition 

<blockquote> Normally this would just be in the Binding for

Transition, which specifies for each role (end) of the relationship

which objects it may connect to: Exit (State | Initial State),

Enter (State | Final State).</blockquote> 

<blockquote> Another way would be a connectivity constraint: 

<b> Final State</b> may be in at most 

<b> 0</b> roles of type 

<b> Exit</b> </blockquote> </li> 

<li> Entry and Exit actions of the States must have non-blank code 

<blockquote> The 

<a href="http://www.metacase.com/support/45/manuals/mwb/Mw-2_6.html#Heading447"> 

Value Regex</a> for the code property in the Actions would be <tt>.+</tt></blockquote> 

<blockquote> Actually, I think this is an unnecessary requirement: many states have no entry or exit action.</blockquote></li>

<li> Names of States must not be blank 

<blockquote> The same Value Regex as above.</blockquote> </li> 

<li> Names of States must be valid C# identifiers 

<blockquote> Change the Value Regex to something like <tt> [a-zA-Z_][a-zA-Z0-9_]*</tt></blockquote> 

<blockquote> Again, I think this is a poor requirement: much better

is to allow modelers to type whatever seems sensible, and then turn

it into a valid identifier when outputting. In MERL you can use 

<a href="http://www.metacase.com/support/45/manuals/mwb/Mw-5_3_6.html#_Ref190594241"> 

translators</a> to do this, e.g. 

<tt> :Name%var</tt>. Using %var translates the :Name property's non-identifier characters into underscores; you can create your own similar translators, e.g. "%upper a-z A-Z" translates lowercase characters to uppercase.</blockquote> </li> 

<li> Names of States must be unique in a State Diagram

<blockquote> A <a href="http://www.metacase.com/support/45/manuals/mwb/Mw-2_5_6.html#Heading409">Uniqueness Constraint</a> for State Diagrams: Property

"Name" in State must have unique values</blockquote> 

<blockquote> Note that this is per diagram: if you want States to have unique names in the whole repository, you can mark the Name property in State as unique.</blockquote> </li> 

</ul> 

<p>Hopefully this gives some idea of how easy it is to add constraints and checks in MetaEdit+. With experience from making hundreds of modeling languages over the last 15 years, we have a pretty good idea of what kinds of constraints you actually need. That allows us to offer you simple ways to define them, without having to resort to hundreds of lines of hand coding for each. And there's no "customization cliff": if you have something we haven't thought of, you can just write it in <a href="http://www.metacase.com/support/45/manuals/mwb/Mw-5_3.html">MERL</a>, or in whatever language you want via the <a href="http://www.metacase.com/support/45/manuals/mwb/Mw-8.html">API</a>.</p>

</div>]]></description>
			<guid isPermaLink="false">3403962406</guid>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3403962406</wfw:comment>
		</item>
		<item>
			<title>Oslo: the pain of visual designers and XML was too much</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3403785829</link>
			<category>DSM</category>
			<pubDate>Mon, 10 Nov 2008 16:03:49 +0200</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">



<p>One of the interesting questions about Oslo is its relationship to DSL Tools. Actually, we should say between Oslo and Software Factories (the marketing side), or between M and DSL Tools (the technical side). Technically it seems there is no link -- which means no integration and no upgrade path. On the marketing side, few people seem to have picked up on the fact that Keith Short, co-author of the <a href="http://www.amazon.com/exec/obidos/ASIN/0471202843/metacaseconsu-20">Software Factories book</a>, <a href="http://blogs.msdn.com/keith_short/archive/2008/10/24/yet-another-promise-to-start-blogging.aspx">moved to work on Oslo</a> nearly two years ago. <a href="http://blogs.msdn.com/stevecook/archive/2008/06/25/i-ve-got-a-new-job-working-on-dsls-and-uml.aspx">Steve Cook</a> and <a href="http://blogs.msdn.com/alan_cameron_wills/archive/2006/09/07/744209.aspx">Alan Cameron Wills</a>, co- authors of the <a href="http://www.amazon.com/exec/obidos/ASIN/0321398203/metacaseconsu-20">DSL Tools book</a>, have also left the team, but for UML and MSF respectively. </p><p>Of course, people move around, and it's more interesting to hear what people still in those teams say. An <a href="http://tinyfinger.blogspot.com/2008/11/oslo-is-that-all-it-is.html">Oslo developer writes</a>:</p>

<blockquote> If I look around, I see people doing [declarative, model-driven programming] today in the form of XML schemas and dialects, various textual reps, and frameworks that encode a domain. We went down that path as well, using visual designers and XML. But at some point the pain was too much :) We evolved our approach into Oslo.</blockquote><p> Microsoft's "visual designers and XML" presumably refers to DSL Tools, and the comment about the pain being too much is perhaps at least one answer to the question of why Oslo isn't being billed as an evolutionary step along the Software Factories / DSL Tools path. It sounds more like Microsoft have concluded that their DSL Tools are an evolutionary dead end, have taken a step back, and are now heading down a different path. That's the impression I get from <a href="http://blogs.msdn.com/keith_short/archive/2008/11/06/oslo-and-the-dsl-toolkit.aspx">Keith Short's blog entry</a>: "both Oslo and the DSL Toolkit have grown from a common belief" in DSLs.</p><p>Microsoft are of course claiming both products will continue to be developed, but losing 3 out of 6 main figures from the DSL Tools team is hardly encouraging. Mind you, I think what is needed is even more radical: both Oslo and DSL Tools should be put on hold until Microsoft have figured out what you need for an industrial strength language for describing modeling languages. The resulting languages and tools have to scale to multiple simultaneous users, multiple representational paradigms (graphical, textual, matrix, tabular), multiple platforms (not very likely that one!), integration between multiple modeling languages and multiple models, and evolution through multiple versions of the languages. There are a few more multi's I could add (look at slide 15 from my <a href="http://www.dsmforum.org/events/DSM08/Papers/DSM08-Kelly_keynote.pdf">keynote</a> to the <a href="http://www.dsmforum.org/events/DSM08/">OOPSLA DSM Workshop</a>), but you get the picture. And if you want more than just the picture, <a href="http://www.metacase.com/download/">get the tool</a>!</p></div>]]></description>
			<guid isPermaLink="false">3403785829</guid>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3403785829</wfw:comment>
		</item>
		<item>
			<title>Two DSM talks in Cambridge UK, 20th Nov 08</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3403186578</link>
			<category>DSM</category>
			<pubDate>Mon, 03 Nov 2008 17:36:18 +0200</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"> 
<p> I've been invited to speak at a couple of events in Cambridge, UK, on 20th November. You can see the full details and register at the event links below, but here's a quick overview.</p> 
<p> The first talk is to the 
<a href="http://www.cambridgewireless.co.uk"> Cambridge
Wireless</a> Software SIG, in an event on 
<a href="http://www.cambridgewireless.co.uk/events/article/default.aspx?objid=35785"> 
Tackling Diversity</a> in the mobile space. If you're in the area and in the mobile space, the event could well be a good way to use an afternoon: other speakers are Qualcomm's John Scott and Pure-Systems' Danilo Beuche. Here's the blurb for my talk:</p> 
<blockquote> 15:40 &ldquo;De-clawing Diversity with Domain-Specific
Modeling&rdquo;</blockquote> 
<blockquote> As mobile developers you&rsquo;ve had to make the right
decisions about new technologies more often than most: rejecting
those that are duds, waiting on those that are still more hype than
substance, but quick to start using those that really work.
It&rsquo;s no surprise then that the mobile industry has been one
of the first to show widespread use of Domain-Specific Modeling:
early adopters have consistently seen productivity improve by
hundreds of percent. With DSM, applications are specified once at a
high level of abstraction, and code generators take care of
producing all necessary versions for different handsets, networks
etc. Since you own the generators, you can easily adjust for new
platforms or their versions: no interminable waiting for tool
vendors to release an update. In this talk you will see how DSM
works to tackle diversity in the mobile space, and learn how you
can join those already using it and reap the same
benefits</blockquote> 
<p>(I've since found out from our resident expert on the canine world what &quot;<a href="http://en.wikipedia.org/wiki/Onychectomy">de-clawing</a>&quot; actually involves. I was thinking more of a light manicure than the rather debatable surgical procedure, so please forgive the title!)</p><p>The second event is part of the new <a href="http://www.software-east.co.uk/">Software East</a> initiative of Mark Dalgarno's <a href="http://www.software-acumen.com/">Software Acumen</a>. The talks are again by myself and Danilo, but at a more introductory level and applicable to any domain, not just mobile. Even better, it's only &pound;15 and you get food! The event is in the evening, and I'll be talking about Moving from Coding to Model-Driven Development:</p><blockquote>Everybody would like the productivity benefits of modelling with full code generation, but the upgrade path from coding to modelling seems a closely guarded secret. This session will demystify Domain-Specific Modelling, open the lid on the OMG&rsquo;s MDA, and shine a light on Microsoft&rsquo;s Software Factories. We will show which bits of Model-Driven Development (MDD) work, which might work, and which don&rsquo;t, and explain where they can be applied and where not. Most importantly, we will show the steps to define your own modelling languages and generators to start using models effectively, road-tested in dozens of projects over a decade.</blockquote></div>]]></description>
			<guid isPermaLink="false">3403186578</guid>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3403186578</wfw:comment>
		</item>
		<item>
			<title>Oslo roundup</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</link>
			<category>DSM-tech</category>
			<pubDate>Wed, 29 Oct 2008 20:10:06 +0200</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml"> 
<p>Overall, it looks like Oslo is primarily just a way to provide configuration information for Microsoft applications. If you want to model and generate Java, or something running on Linux, or a standalone Windows program, or embedded software, it's not for you. If you're building in-house IT applications in the Microsoft stack, it could be useful at some point in the future.</p><p>From <a href="http://blog.avanadeadvisor.com/blogs/aalialikoski/archive/2008/10/29/12065.aspx"> 
Aali Alikoski</a> , who ran the DSM workshop at XP with me, knows
the DSL Tools well, and is at PDC:</p> 
<blockquote> &quot;Oslo&quot; initially seems like a disappointment for me. I
continue wondering what is the relationship between it and DSL
Tools. It seems that there is no relationship at all, which seems
odd since Oslo has many of the same features as DSL Tools (a couple
of years later), although in a more limited way in my opinion. It
looks from outside like Don Box et al haven't synched their
thoughts with Jack Greenfield, which they should have
done.</blockquote> 
<p> Paraphrased from 
<a href="http://martinfowler.com/bliki/Oslo.html"> Martin
Fowler</a> , who got a pre-PDC showing of Oslo from Don Box et al., based on further input from <a href="http://samgentile.com/blogs/samgentile/">Sam Gentile</a> and what I can glean from playing around for an hour with the SDK:</p> 
<blockquote> Oslo has three main components:
<ul xmlns="http://www.w3.org/1999/xhtml"> 
<li> a language (M) for  textual DSLs, with three sub-languages:<ul> 
<li> MGrammar: defines grammars for Syntax Directed Translation.[think BNF]</li> 
<li> MSchema: defines schemas for a Semantic Model [think C structs]</li> 
<li> MGraph: is a textual data format for representing instances of a Semantic Model [think JSON]</li> 
</ul> </li> 
<li> a design surface (Quadrant) for graphical DSLs</li> 
<li> the &quot;Oslo&quot; repository that stores semantic models in a relational database</li> 
</ul> You could define a semantic model with MSchema. You could then populate it (in an ugly way) with MGraph. A better way to populate it would be to build a decent DSL using MGrammar, and pass the result to the general parser mechanism that Oslo provides, along with some input in that DSL.The parser gives you a syntax tree, but that's often not the same as a semantic model. So usually you'll <strong>write code</strong> to walk the tree and populate a semantic model defined with MSchema. Once you've done this you can easily take that model and store it in the repository. </blockquote>
<p>For me, that &quot;<strong>write code</strong>&quot; is the worst part. If Martin's right, that means that there is no good way to just specify your DSL syntax with your schema, and have statements in that DSL saved to the repository. That seems a step back from what I'm used to in other tools like XText or MPS.</p> 
</div>]]></description>
			<guid isPermaLink="false">3402763806</guid>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:puid>
					<includedComments:author>Alex</includedComments:author>
					<includedComments:pubDate>2008-10-30T20:32:04+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;&amp;gt; If Martin's right, that means that there is no good way to just specify
your DSL syntax with your schema, and have statements in that DSL saved
to the repository.&lt;/p&gt;
&lt;p&gt;This does not appear to be the case. From the same write-up by Martin Fowler:&lt;/p&gt;
&lt;p&gt;"&lt;strong&gt;The default way a grammar is run is to do tree construction. As it
turns out the tree construction is the behavior of the default class
that gets called by the grammar while it's processing some input.&lt;/strong&gt; This
class has an interface and you can write your own class that
implements this. This would allow you to do embedded translation and
embedded interpretation. It's not the same as code actions, as the
action code isn't in the grammar, but in this other class. I reckon
this could well be better since the code inside actions often swamp
grammars."&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>The default way a grammar is run is to do tree construction</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:puid>
					<includedComments:author>Steven Kelly</includedComments:author>
					<includedComments:pubDate>2008-10-30T22:16:43+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;But the default tree produced by parsing the input according to the MGrammar isn't the semantic model. To get the semantic model, you&amp;nbsp;need to write code: your own class to walk the tree and output the semantic model.&amp;nbsp;XText lets you just specify the syntax, and creates the semantic model automatically. An &lt;a href="http://www.eclipse.org/gmt/oaw/download/notes43.html"&gt;experimental feature&lt;/a&gt; allows you to link up to an existing semantic model if you have one, but that's optional.&lt;/p&gt;&lt;p&gt;M's freedom of writing code to define a custom mapping from tree to model is nice, but not at the expense of having to do it even for simple cases. And even the simplest cases can't be handled in the MGrammar actions.&amp;nbsp;For instance, in the music example grammar, I wanted to turn the notes into numerical values, and expected to be able to do something like this:&lt;/p&gt;&lt;p&gt;token Note = &amp;quot;A&amp;quot;..&amp;quot;G&amp;quot;;&lt;br/&gt;token Octave = &amp;quot;0&amp;quot;..&amp;quot;4&amp;quot;;&lt;br/&gt;syntax FullNote = note:Note oct:Octave&amp;nbsp;=&amp;gt; &amp;quot;CDEFGAB&amp;quot;.IndexOf(note)&amp;nbsp;+ 12 * oct;&lt;/p&gt;&lt;p&gt;No luck: the action (the part after =&amp;gt;) can't use any code. The main problem though is that you have to write code at all, even for the simple cases.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>@Alex</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:puid>
					<includedComments:author>Steven Kelly</includedComments:author>
					<includedComments:pubDate>2008-11-03T13:04:27+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Maybe the clearest I've seen so far:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.heise-online.co.uk/news/PDC-Microsoft-puts-modelling-into-concrete-terms-with-Oslo--/111842" target="_blank"&gt;PDC: Microsoft puts modelling into concrete terms with "Oslo"&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Another good overview of Oslo</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:puid>
					<includedComments:author>Sven Efftinge</includedComments:author>
					<includedComments:pubDate>2008-11-03T23:42:46+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;There are two very important thngs I havn't seen in MGrammar so far.&lt;/p&gt;
&lt;p&gt;1) Grammars seem to be one-way only (havn't seen any examples where they create textual syntax from models). You need this if you want to edit or view information from their repository in a textual manner. You'ld also need it if you want to be able to edit textual artifacts using graphical tools.&lt;/p&gt;
&lt;p&gt;2) Cross-linking. All examples just create trees. As they stated that M itself is written in M (which has cross links), there must be a way to implement them. I'm curious why they never show it.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>two important things</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:puid>
					<includedComments:author>Alex</includedComments:author>
					<includedComments:pubDate>2008-11-04T22:45:56+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;1) This question was asked during PDC session 'Building Textual DSLs with the "Oslo" Modeling Language'; the answer was &lt;span&gt;Giovanni Della-Libera: &lt;/span&gt;"It's been the number one feature request at the conference. We are actively looking into this." Chris Anderson: "We've been all harrasing Gio about this feature ..."&lt;/p&gt;
&lt;p&gt;Video at http://channel9.msdn.com/pdc2008/TL31/, relevant question at 47:10. The whole Q&amp;amp;A session is quite informative.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>@Sven Efftinge</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402763806</includedComments:puid>
					<includedComments:author>Don Box</includedComments:author>
					<includedComments:pubDate>2008-11-08T05:38:25+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Lots of good discussion here.&amp;nbsp; Let me chime in with a few clarifications.&lt;/p&gt;
&lt;p&gt;The bits (and spec) we shipped last week have several annoying limitiations that we are addressing in the milestone we're about to enter. Specifically:&lt;/p&gt;
&lt;p&gt;1. An M module cannot contain both schema and language definitions. This is due to the fact that currently we have two toolchains (M/MX and MG/MGX). This will go away ASAP.&lt;/p&gt;
&lt;p&gt;2. The right-hand-sides of grammar productions support a VERY limited set of operators.&amp;nbsp; We're want to allow more or less arbitrary M expressions, including the ability to schematize the right-hand-sides.&lt;/p&gt;
&lt;p&gt;The second point will provide a lot of power for forming arbitrary structured data as the output of the parse. Assuming we go all the way with point #2, that includes calling arbitrary M funcitons (remember, M Schema includes pretty rich functional expressions and queries including named/parameterized functions).&amp;nbsp;&amp;nbsp; As to whether that means your grammar can produce a "semantic model" I'll plead "you tell me."&amp;nbsp; I'd love it if y'all could tell me the litmus tests you'd use so I could answer yeah or nay.&lt;/p&gt;
&lt;p&gt;Oh, and the current bits allow grammars to yield DAGs but full cyclic graphs won't happen until we go all the way and open up RHSs to all of M.&lt;/p&gt;
&lt;p&gt;And yes, the desire for a text output system is huge.&amp;nbsp; I feel dirty saying this, but if I had one, i'd get XML (poor man's at least) for free :-)&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Some comments</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3402763806</wfw:comment>
		</item>
		<item>
			<title>Post-doc / PhD position: Domain-specific modeling languages / metamodeling</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3402578230</link>
			<category>DSM</category>
			<pubDate>Mon, 27 Oct 2008 16:37:10 +0200</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>From: <a href="http://www.abo.fi/~iporres">Ivan Porres</a> &lt;iporres@abo.fi&gt;</p>
<blockquote>The Center for Reliable Software Technology CREST at <a href="http://www.abo.fi">&Aring;bo Akademi University</a> in Turku, Finland is looking to expand its research team on model driven software and system engineering with one new post-doctoral researcher position and one doctoral student position in the area of software modeling languages and tools. </blockquote><blockquote><a href="http://crest.abo.fi">CREST</a> is a research center at the Department of Information Technologies at &Aring;bo Akademi University. Its research is focused on the development and analysis of software intensive systems and on the use of software based research paradigms in systems modeling and development. </blockquote><blockquote>We are looking for post-doctoral and PhD. researchers interested in working on a research project focusing in the definition of software and system modeling languages, including domain-specific modeling languages, modeling tools supporting these languages, and the validation of software modeles and languages. The work will be developed under the supervision of <a href="http://www.abo.fi/~iporres">Ivan Porres</a>. </blockquote><blockquote> <strong>Post-doctoral Position </strong></blockquote><blockquote>Candidates for a post-doctoral position should have a doctoral degree in software engineering or a closely related field and research experience in topics such as the definition of the UML, definition of domain-specific modeling languages, metamodeling, description logics and tools such as EMF and Alloy. We offer full-time employment for 1 year, ideally starting from Janurary 2009. The employment and salary will be based on the standard agreement and conditions at &Aring;bo Akademi University. In practice, the monthly salary for a postdoctoral researcher is around 2500-3000 euro before taxes depending on experience. </blockquote><blockquote> <strong>PhD. Position </strong></blockquote><blockquote>Candidates for a PhD. position should have a MSc in Mathematics, Computer Science, Electrical engineering and good communication and writing skills in English. PhD. students are expected to defend their doctoral thesis within 4 years. We offer full-time employment for 4 years, with an intermediate evaluation after the first year. </blockquote><blockquote> <strong>Application Procedure </strong></blockquote><blockquote>If you are interested in one of the previous positions please send an email to iporres@abo.fi including the following attachments: 
<ul>
<li>a motivation letter </li>
<li>short description of your research interests </li>
<li>full C.V.</li>
<li>list of publications (Post doc position) </li>
<li>a copy of your M.Sc. degree certification together with your course program and corresponding grades, and (PhD. student position) </li>
<li>Contact information for 2 referees. </li>
</ul>
Please send your attachments in pdf format. The vacancies will be filled on demand, and next deadline is November 30 for starting on January 2009. The following deadline will be February 28 2009. Do not hesitate to contact Ivan Porres (iporres@abo.fi) if you have any questions about the application procedure. </blockquote></div>]]></description>
			<guid isPermaLink="false">3402578230</guid>
			<includedComments:comment-collection></includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3402578230</wfw:comment>
		</item>
		<item>
			<title>Domain-Specific Modeling: what's in a name?</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3400923346</link>
			<category>DSM</category>
			<pubDate>Wed, 08 Oct 2008 12:55:46 +0300</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>There's an interesting <a href="http://www.linkedin.com/groupAnswers?viewQuestionAndAnswers=&amp;gid=138803&amp;discussionID=115781&amp;commentID=205905&amp;trk=nu_dig_disc_more&amp;goback=.anh_138803#commentID_205905">discussion on the name DSM</a> in the <a href="http://www.dsmforum.org/">DSM Forum</a> discussion group (<a href="http://www.linkedin.com/e/gis/138803/1CEC711F113E">join the DSM Forum group</a> on LinkedIn for free to see it). Stefan H&auml;gglund started it, and his questions and my answers are below:</p>
<blockquote>@Stefan: &quot;I've always viewed DSM as belonging to the problem domain. However, recently I've seen DSM being positioned in the solution domain [too]. What do you guys think?&quot;</blockquote><p>DSM is all about raising the level of abstraction higher than the level on which we currently build solutions. We always aim at modeling the problem domain: the more we include solution domain information in the models, the leakier the abstraction becomes. If the modeling language concepts are entirely from the solution domain, it has not raised the level of abstraction. </p><p>Some people like to build DSM languages starting from a solution framework and abstracting upwards. I find that's often <a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3368107440">less successful</a> than starting from the problem domain and working downwards, but it is still possible to arrive at a decent problem domain modeling language. </p><blockquote>@Stefan: &quot;[If we take] the acronym purely from a semantic perspective, DSM means Domain Specific Modeling, period. If we wanted it to be specifically Problem Domain Specific Modeling, why didn't we call it PSM?&quot; </blockquote>
<p>I think I can speak to that, since I'm one of the guilty parties behind the name. First some background in terms of semantics: no word contains its meaning. That's a <a href="http://en.wikipedia.org/wiki/Course_in_General_Linguistics#Arbitrariness">fundamental</a>, and should be clear: there's nothing in the sound &quot;cat&quot; that is particularly cat-like. (Since <a href="http://en.wikipedia.org/wiki/Onomatopoeia">onomatopoeia</a> is unlikely for DSM, let's skip that exception!). We should of course strive in a name for something that uses existing concepts to help get the point across, but it has to be short enough to be used: the name can't be the full explanation. </p><p>Why DSM then? Back when we were looking for a name, we looked at existing names and fields. Our own background was in CASE, in particular metaCASE, but that term was only familiar in Europe, and &quot;CASE&quot; worldwide had bad connotations from the overly hyped failures of tools around 1990. DSL was clearly similar, but we needed to distinguish what was different: we were talking about graphical modeling languages. Since some of the languages were matrix-based, we preferred &quot;visual&quot; to &quot;graphical&quot;, and the first BOF and <a href="http://www.dsmforum.org/DSMworkshops.html">workshops</a> at OOPSLA were called &quot;Domain-Specific Visual Languages&quot;. That was already a bit of a mouthful, and tended to make people think of &quot;<a href="http://web.engr.oregonstate.edu/~burnett/vpl.html">Visual Programming</a>&quot;, something else which in most people's minds had been seen to fail. We thus shortened the name to &quot;Domain-Specific Modeling&quot;, which also used the widely accepted semantics of the word &quot;modeling&quot; in our community. As shown by all the MD* names, modeling was seen as a key element in moving our field forward. The key differentiator from the other MD* approaches was domain-specificity: the focuses on problem domains, visual languages, code generation, domain frameworks, tooling etc. were important elements, but not as important to DSM as domain specificity, and not as useful in distinguishing it from other approaches. </p><p>The term DSM had already been used early on by the GME guys at Vanderbilt, although they had later moved to calling it &quot;model integrated computing&quot;. Overall, as a term I think DSM has done OK, although of course something shorter and containing more information would have been better :-). Part of the problem is its very success: remember when O-O was the buzzword, and everything had to be O-O? Back then I remember an advert talking about an &quot;object-oriented user interface&quot;, and predicted that DSM will have reached a tipping point when we see the first mention of a &quot;<a href="http://www.google.com/search?q="domain-specific+user+interface"">domain-specific user interface</a>&quot; (where D-S is used more for its buzz than its semantics). That happened last year, and Google now has nearly 100 hits for that phrase! When something becomes a buzzword, people want to apply it to their own work even if it doesn't quite fit. There's not much anyone can do about that other than accept it as the price of success: rather that, than that nobody else ever mentions DSM. </p><p>However, what we should IMHO try to avoid is accepting those uses of &quot;DSM&quot; as changing its core meaning. If we do that, it becomes devalued and diluted, and most importantly when people apply these other non-DSM approaches, thinking they are DSM, and find no productivity improvements, they will perceive DSM as having failed. To my knowledge, no &quot;pseudo-DSM&quot; has raised productiviy by a factor of 5-10, or even close, whereas for true problem-domain based DSM this is common. </p><p>So, I don't want to be the language police here, but if as Stefan says, we have &quot;always viewed DSM as belonging to the problem domain&quot;, let's stick to our guns and continue to promote what we know works. </p>
</div>]]></description>
			<guid isPermaLink="false">3400923346</guid>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3400923346</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3400923346</includedComments:puid>
					<includedComments:author>Jeff Gray</includedComments:author>
					<includedComments:pubDate>2008-12-21T00:18:33+02:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Can any readers of Steve's blog suggest what they consider as the earliest reference where the explicit phrase "domain-specific modeling" occurs? I am not asking about where general concepts are defined under other names, but where the specific name is first used.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Any thoughts?&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Earliest reference with literal phrase </includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3400923346</wfw:comment>
		</item>
		<item>
			<title>MetaCase at top of development tool chart</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</link>
			<category>DSM</category>
			<pubDate>Wed, 17 Sep 2008 17:51:52 +0300</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">


<p>The latest issue of IEEE Software has an interesting <a href="http://www.computer.org/portal/cms_docs_software/software/homepage/2008/s5gei.pdf">article</a> by Simon Helsen (of ArcStyler MDA fame, now with SAP), Arthur Ryman (IBM, Rational Application Developer), and Diomidis Spinellis (Athens University). They look at the history of software development tools over the last 40 years, and bemoan the lack of major progress since the move up from assemblers. Tools have improved, but slowly, and &quot;silver bullets&quot; have often turned out to be filled with hot air.</p><blockquote>&quot;Software factory tooling, computer-aided software engineering, and model-driven development tools, to name just a few buzzwords, clearly haven&rsquo;t lived up to their proponents&rsquo; sometimes-inflated promises.&quot;</blockquote><p>Looks like we're going to get bashed here, doesn't it? But no: while the authors agree with us that some companies have hyped their tools and approaches beyond what they could deliver, they say MetaCase isn't one of them. Here's the first figure from the article, a 40-year history of &quot;exemplary well-known development tools&quot; and their level of abstraction:</p>
<p><a href="http://www.computer.org/portal/cms_docs_software/software/homepage/2008/s5gei.pdf"><img alt="Levels of abstraction of well-known software development tools over 40 years" src="http://www.metacase.com/blogs/stevek/images/devToolAbstraction.png"/></a><br/><i>Levels of abstraction of well-known software development tools over 40 years -- look who's  top!</i></p>
<p>Even the original version of <a href="http://en.wikipedia.org/wiki/MetaEdit+#Tool_History">MetaEdit</a>, from 1993, is ranked higher than Microsoft's Visual Studio 2003 (with their DSL Tools) or Eclipse (with EMF+GMF). Hopefully we've moved on a little since 1993, keeping <a href="http://www.metacase.com/products.html">MetaEdit+</a> ahead of XMF Mosaic. The graph doesn't show which tools are still around, or how long things lasted: Xactium, the company behind XMF Mosaic, sadly stopped development of it this year. Last I heard they intended to release the source code into the GMT project in Eclipse, to join the several existing prototype modeling tools there. At least so far it's not appeared, although the source code can be found from the web. It would be a shame if the GMT project became the open source equivalent of Computer Associates (who bought up many dead and dying modeling tool companies, but seemed more interested in collecting maintenance fees, leaving the tools to languish with no further development).</p><p>The article is not without its faults: it mistakes &quot;text&quot; and &quot;XML&quot; as universally readable formats, as if by having your software described in one of those formats means it will be readable by other tools or later versions. For the record, opening the proprietary, binary format of a Word 97 document in Word 2007 works fine, and the document will be upgraded if desired when saving. Contrast that with opening a Java program from 1997 in a Java IDE today: the program almost certainly won't compile, or will give many errors. The underlying storage format, text or binary, hasn't changed in either case; what changes is the actual syntax, structure or in XML terms the schema. Whether the content can be read and updated to match schema updates depends on the tool, not the underlying storage format.</p><p>In many ways, text is worse than binary or XML as the underlying storage format: the latter imply that the storage format is already close to the structure of the program -- its abstract syntax tree. Or to take a more pragmatic view, the work needed to turn the storage format into whatever the development tool natively works with in memory is fastest for binary, somewhat slow for XML, and slowest for text. Of course text has its advantages: you can open it in any editor (at the cost of losing the IDE's power), and the diff algorithms and displays are more mature (but show changes at the character level, not the language concept level -- rename a function in a refactoring IDE and your diff shows hundreds of changes).</p><p>I can't resist one last comment on the chart above: look at the development tools that are ahead of the curve, i.e. furthest above the diagonal. Written in Smalltalk, all three of them. If you think Smalltalk = old, go take a look at <a href="http://www.metacase.com/papers/DSM_Definition.html">MetaEdit+</a>, <a href="http://www.seaside.st/">Seaside</a>, or <a href="http://www.dabbledb.com/demo/">DabbleDB</a> -- or jump straight to the source, Cincom's <a href="http://www.cincomsmalltalk.com/scripts/CommunityDownloadPage.ssp">VisualWorks</a> Smalltalk.</p></div>]]></description>
			<guid isPermaLink="false">3399126712</guid>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:puid>
					<includedComments:author>Peter Bell</includedComments:author>
					<includedComments:pubDate>2008-09-17T23:52:52+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;@Steve, I read the article the other week and the Metacase name jumped out at me from the chart. Congratulations on being ahead of the curve - for fifteen years. Still just waiting for the rest of the world to catch up :-)&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Congratulations!</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:puid>
					<includedComments:author>Java guy</includedComments:author>
					<includedComments:pubDate>2008-09-18T11:41:49+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Hmm&lt;/p&gt;
&lt;p&gt;I was wodering if You could give an example of a Java programm from 1997 that will not compile in Java IDE today.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Java backward ompatibility</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:puid>
					<includedComments:author>Steven Kelly</includedComments:author>
					<includedComments:pubDate>2008-09-18T15:38:57+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;The &lt;a href="http://java.sun.com/products/archive/j2se/1.2.2_017/compatibility.html"&gt;JDK 1.2 release notes&lt;/a&gt; list 21 incompatibilities (breaking changes) in the language between JDK 1.1 (released 1997) and 1.2 (1998) alone. E.g. HashTable and Vector changed from using reference equality to value equality, and&lt;/p&gt;
&lt;p&gt;myVal = condition ? x = 7 : x = 3;&lt;/p&gt;
&lt;p&gt;must now be written as:&lt;/p&gt;
&lt;p&gt;myVal = condition ? x = 7 : (x = 3);&lt;/p&gt;
&lt;p&gt;There are another 17 for breaking changes in the standard libraries, e.g. com.sun.java.swing.* moved to javax.swing.*. That alone would stop many 1997 programs from compiling in 1998.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Re: Java backward compatibility</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:puid>
					<includedComments:author>Diomidis Spinellis</includedComments:author>
					<includedComments:pubDate>2008-09-18T21:45:18+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Steve, this is an interesting entry.  For the record, let me say how we created the chart.  First we gathered names of software development tools we considered important.  Then Simon and I sat for an hour on a table in Athens, and shuffled them around until we were happy that no tool with a higher level of  abstraction was ordered below one operating at a lower level.  Some tools, like build managers, work on abstractions that are not directly comparable with, say, with programming languages, so we had to fudge.  We also collected approximate dates for the tools, from publications and sources like Wikipedia. I then &lt;a href="http://www.spinellis.gr/blog/20080524/"&gt;wrote a small script&lt;/a&gt; to draw the chart.  Finally we circulated the result among ourselves to agree on its contents.  The artists at IEEE Software introduced a further fudge factor when they created the pretty chart you include in your article.

&lt;/p&gt;
&lt;p&gt;So, yes, the chart does show a general trend, but small differences in levels of abstraction between tools are unlikely to mean anything significant.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Don't read too much from the chart</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:puid>
					<includedComments:author>Tom Morris</includedComments:author>
					<includedComments:pubDate>2008-09-28T23:54:42+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;That's got to be one of the silliest charts I've ever seen.&amp;nbsp; Since when does a text editor (Emacs) have a "level of abstraction?"&amp;nbsp; Or a web site (Sourceforge) for that matter?&amp;nbsp; But hey, congratulations for being on top! :-)&amp;nbsp; At least the authors don't take it too seriously.&lt;/p&gt;
&lt;p&gt;There's no question that the amount of progress in tools development has been woeful, but a bunch of the authors' other points are well wide of the mark, including the one that you picked up on about text/XML representations behing inherently portable.&amp;nbsp; I'm surprised that you didn't pick on XMI though.&amp;nbsp; Not only has every single version of UML/XMI been completely incompatible with the previous (with the possible exception of UML 1.4-&amp;gt;1.5), even within a single version you can't count on getting faithful interchange between tools from different vendors.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Silly, silly chart</includedComments:title>
				</includedComments:comment>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3399126712</includedComments:puid>
					<includedComments:author>Steven Kelly</includedComments:author>
					<includedComments:pubDate>2008-09-29T11:58:07+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;@Tom Morris:&lt;br /&gt;As the article says, comparing the unmeasurable is far from being an exact science. As humans we're capable of saying things, even meaningful things, without being able to measure and prove scientifically what we say. Your own comment that this is a silly chart is just such a judgment. As it happens, I think both the chart and your criticism are useful parts of an important discussion: where are we today, have we made progress, and what tools are actually improving things.&lt;/p&gt;
&lt;p&gt;A text editor doesn't have much of a level of abstraction per se: it depends on the task. The article is about tools for developing software, so it's considering text editors as IDEs. In that category, emacs is clearly ahead of notepad, but clearly behind Eclipse. Personally, I would have narrowed the focus to tools for writing programs, not just any tools used in the SDLC. This would have ruled out things like SourceForge or Subversion, and hopefully made the comparison more like apples vs. oranges than apples vs.&amp;nbsp;dishwasher tablets.&lt;/p&gt;
&lt;p&gt;As for XMI, I think I've said more than enough about it already in earlier blog entries: &lt;a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;amp;entry=3292594086"&gt;XMI, MOF and MetaEdit+&lt;/a&gt;, &lt;a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;amp;entry=3292662815"&gt;Scott Ambler: OMG not doing a good job&lt;/a&gt;, &lt;a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;amp;entry=3296806755"&gt;Effectively no tools supporting XMI&lt;/a&gt;, &lt;a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;amp;entry=3385202330"&gt;XMI still a failure&lt;/a&gt;. I've not gone as far as calling it a "silly, silly" standard yet, but I guess we're pretty much in agreement on it!&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Comparisons and judgments</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3399126712</wfw:comment>
		</item>
		<item>
			<title>DSLs: to buy, to build or to sell?</title>
			<link>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3396789364</link>
			<category>DSM</category>
			<pubDate>Thu, 21 Aug 2008 16:36:04 +0300</pubDate>
			<description><![CDATA[<div xmlns="http://www.w3.org/1999/xhtml">

<p>Johan den Haan agreed in his <a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3396256561#3396690395">comment</a> with most of my thoughts on <a href="http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3396256561">Microsoft's odd new DSLs + UML approach</a>, and wrote an interesting <a href="http://www.theenterprisearchitect.eu/archive/2008/08/20/dsl_in_the_context_of_uml_and_">article</a> of his own on the topic. I agree with him that there are situations where framework-based DSLs make sense, and that one of the major criteria in such situations is the cost-benefit analysis. Given a choice of no MDD, MDD with your own DSL, and MDD with an existing third party DSL, just look at how much it costs to develop your apps in each case, and how much to develop or buy the DSL and its tooling.</p>
<p>If you decide to create your own DSL, there's normally no question: it should be made for your problem domain, not your solution domain. That gives higher productivity, more flexibility and more future-proofing (you can change solution domain by one person changing the generator, no need to update the models or language). </p><p>The possible exception is when, like Johan, you decide you want to <em>sell </em>your DSL as a tool, rather than use it to make your own apps. In that case you need to factor expected selling price against expected market size and the work required to create the solution:</p>
<ul><li>Expected selling price is largely a measure of the productivity increase. It is thus higher for problem-domain specific DSLs, and increases the more specific the DSL is.</li>
<li>Expected market size is greater the less specific the DSL is. As many development organizations see themselves as &quot;J2EE developers&quot; rather than &quot;webstore developers&quot;, it may be easier to market solution-domain specific DSLs. Similarly if you already have a captive market, as Microsoft does with Visual Studio users, it makes sense to sell solution-domain specific DSLs.</li>
<li>The work needed to support an extra solution domain is mostly the cost of becoming proficient in the new framework or language. Since we're assuming the solution domain language or framework isn't perfect, and is probably a pain to use (increasing the marketability of the DSL), that's probably quite a large amount of work. Also, developers will judge a DSL by the quality and familiarity of the code it outputs. This means you have to reach a good standard of proficiency in that solution domain, and also offer significant tailorability in the code that will be output, so you can suit a larger number of potential customers.</li>
</ul><p>As you can see, the factors and their weights are very different if you want to sell your DSL rather than use it yourself. When selling, many of the benefits of DSM are reduced: the broader DSL leads to lower productivity for your customers, and the broader solution domain support leads to higher costs for you in terms of learning and generator development. Building a DSL for your own use is a lot easier and cheaper, and gives greater benefits.</p></div>]]></description>
			<guid isPermaLink="false">3396789364</guid>
			<includedComments:comment-collection>
				<includedComments:comment>
					<includedComments:guid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3396789364</includedComments:guid>
					<includedComments:puid>http://www.metacase.com/blogs/stevek/blogView?showComments=true&amp;entry=3396789364</includedComments:puid>
					<includedComments:author>Andriy Levytskyy</includedComments:author>
					<includedComments:pubDate>2008-09-26T15:35:26+03:00</includedComments:pubDate>
					<includedComments:content>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;p&gt;Steven,&lt;/p&gt;
&lt;p&gt;No doubt that if one can raise level of abstraction to
the problem domain, then it is the way to do. If it is not possible,
then using DSLs for solution (or horizontal) domains is still worth the
effort, *even if you use it yourself*.&lt;/p&gt;
&lt;p&gt;This is especially true for complex development processes, where generated code will have to comply with in-house rules e.g. in order to integrate with artifacts not generated  from the DSL models.&lt;/p&gt;
&lt;p&gt;Of cause, the best scenario is to simply buy an appropriate (problem/solution) DSL and tailor its syntax and semantics. But the DSL market and customization quality of MDE tools are not there yet.&lt;/p&gt;
&lt;/div&gt;</includedComments:content>
					<includedComments:title>Solution DSLs - worth building</includedComments:title>
				</includedComments:comment>
			</includedComments:comment-collection>
			<wfw:comment>http://www.metacase.com/blogs/stevek/blogView/servlet/CommentAPIServlet?guid=3396789364</wfw:comment>
		</item>
	</channel>
</rss>
