<?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>Claudio Perrone&#039;s Monologues &#187; mdd</title>
	<atom:link href="http://www.agilesensei.com/articles/tag/mdd/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agilesensei.com</link>
	<description>Personal and professional transformations in today&#039;s agile world</description>
	<lastBuildDate>Wed, 11 Jan 2012 16:24:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Sick of Angle Brackets? DSL Modeling is (maybe) the Cure</title>
		<link>http://www.agilesensei.com/blog/articles/2006/03/19/sick-of-angle-brackets-dsl-modeling-is-maybe-the-cure/</link>
		<comments>http://www.agilesensei.com/blog/articles/2006/03/19/sick-of-angle-brackets-dsl-modeling-is-maybe-the-cure/#comments</comments>
		<pubDate>Sun, 19 Mar 2006 21:11:00 +0000</pubDate>
		<dc:creator>Claudio Perrone</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dsl]]></category>
		<category><![CDATA[mdd]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[<p>Last week <a href="http://www.jnsk.se/weblog/">Jimmy Nilsson</a> <a href="http://www.jnsk.se/weblog/posts/TierXLanguages.htm">expressed</a> his growing dislike for today&#8217;s overuse of XML, particularly when conceived as a surrogate programming language. </p>

<p>I really share Jimmy&#8217;s concern, especially when I think about the XML <em>abuse</em> I&#8217;ve been subjected to while creating languages and recipes using the Domain-Specific Language (DSL) Tools and the Guidance Automation Toolkit (GAT).<br/>
On the other hand, I recognize that it is totally unfair for me to complain; this is, after all, the price we pay for dealing with prerelease software.<br/>
In fact, the DSL Tools team already announced that will soon provide us with a modeling language able to deal with the .dsldd file and hide that ugly XML from our sensitive eyes.<br/>
I haven&#8217;t heard of announcements regarding similar improvements on the GAT side, but I choose to be optimistic and wait for new developments.</p>

<p>Unfortunately this problem does not affect prereleases exclusively; released software, both closed and open source, is not immune either.<br/>
Let&#8217;s face it, it is far too easy to define and process a language using XML for not taking advantage of it; in a not-that-distant future, however, I have no doubts that we will look back and laugh thinking about how we put up with manually dealing with its angle brackets notation on a daily basis for all these years.</p>

<p>Apart from really extreme cases such as XSLT, perhaps XML-based build languages of the likes of <a href="http://ant.apache.org/">Ant</a>, <a href="http://nant.sourceforge.net/">NAnt</a> and <a href="http://channel9.msdn.com/wiki/default.aspx/MSBuild.HomePage">MSBuild</a> are among the most obvious and discussed examples of how a good idea can turn nasty when scenarios get a little more complex than anticipated.</p>

<p><a href="http://www.martinfowler.com/">Martin Fowler</a> already <a href="http://www.martinfowler.com/bliki/BuildLanguage.html">suggested</a> that today&#8217;s enterprise applications require pretty sophisticated builds which are better handled using a full-fledged programming language. </p>

<p>Last year, he also wrote an <a href="http://martinfowler.com/articles/rake.html">article</a> about his explorations using <a href="http://rake.rubyforge.org/">Rake</a>, a build language based on <a href="http://www.ruby-lang.org/en/20020101.html">Ruby</a>. In a nutshell, using an internal (text-based) domain-specific language such as Rake enables developers to easily switch to the external general-purpose language (Ruby) whenever necessary.</p>

<p>But how sophisticated can builds be? To put a little bit of perspective into things, let me tell you that for more than two years at <a href="http://www.innerworkings.com/">InnerWorkings</a> we have adopted a continuous integration solution based on <a href="http://confluence.public.thoughtworks.org/display/CCNET">CruiseControl. NET</a> and <a href="http://nant.sourceforge.net/">NAnt</a>; unless you&#8217;ve read Jimmy&#8217;s brilliant manuscript of his upcoming <a href="http://www.jnsk.se/weblog/posts/AfterAR.htm">book</a> (in which I was honored to make a small contribution as guest author) you will be surprised to hear that we manage to automatically and continuously build, obfuscate, package, test and deploy several <em>hundred</em> .NET solutions.<br/>
While I think that we have done more than a reasonable job at maintaining a good degree of modularity and reuse in our XML scripts, our tolerance to NAnt&#8217;s notation has been tested several times.</p>

<p>Resorting to a DSL written on top of a full programming language as Martin suggests would definitely help, but I have the impression that a purely text-based language may still be rather inadequate at solving one of the issues that we often face, particularly when dealing with many scripts in parallel like our scenario requires: lack of run-time visibility about the progress of each build.<br/>
Do I have a viable solution? I&#8217;m not sure, but I speculate that it won&#8217;t be long before we will see the raise of a new generation of continuous integration systems built around the upcoming <a href="http://msdn.microsoft.com/winfx/reference/workflow/default.aspx">Windows Workflow Foundation</a>, with steps defined using domain-specific activities.<br/>
What do you think? Is it a daft idea?</p>]]></description>
			<content:encoded><![CDATA[<p>Last week <a href="http://www.jnsk.se/weblog/">Jimmy Nilsson</a> <a href="http://www.jnsk.se/weblog/posts/TierXLanguages.htm">expressed</a> his growing dislike for today’s overuse of XML, particularly when conceived as a surrogate programming language. </p>
<p>I really share Jimmy’s concern, especially when I think about the XML <em>abuse</em> I’ve been subjected to while creating languages and recipes using the Domain-Specific Language (DSL) Tools and the Guidance Automation Toolkit (GAT).<br />
On the other hand, I recognize that it is totally unfair for me to complain; this is, after all, the price we pay for dealing with prerelease software.<br />
In fact, the DSL Tools team already announced that will soon provide us with a modeling language able to deal with the .dsldd file and hide that ugly XML from our sensitive eyes.<br />
I haven’t heard of announcements regarding similar improvements on the GAT side, but I choose to be optimistic and wait for new developments.</p>
<p>Unfortunately this problem does not affect prereleases exclusively; released software, both closed and open source, is not immune either.<br />
Let’s face it, it is far too easy to define and process a language using XML for not taking advantage of it; in a not-that-distant future, however, I have no doubts that we will look back and laugh thinking about how we put up with manually dealing with its angle brackets notation on a daily basis for all these years.</p>
<p>Apart from really extreme cases such as XSLT, perhaps XML-based build languages of the likes of <a href="http://ant.apache.org/">Ant</a>, <a href="http://nant.sourceforge.net/">NAnt</a> and <a href="http://channel9.msdn.com/wiki/default.aspx/MSBuild.HomePage">MSBuild</a> are among the most obvious and discussed examples of how a good idea can turn nasty when scenarios get a little more complex than anticipated.</p>
<p><a href="http://www.martinfowler.com/">Martin Fowler</a> already <a href="http://www.martinfowler.com/bliki/BuildLanguage.html">suggested</a> that today’s enterprise applications require pretty sophisticated builds which are better handled using a full-fledged programming language. </p>
<p>Last year, he also wrote an <a href="http://martinfowler.com/articles/rake.html">article</a> about his explorations using <a href="http://rake.rubyforge.org/">Rake</a>, a build language based on <a href="http://www.ruby-lang.org/en/20020101.html">Ruby</a>. In a nutshell, using an internal (text-based) domain-specific language such as Rake enables developers to easily switch to the external general-purpose language (Ruby) whenever necessary.</p>
<p>But how sophisticated can builds be? To put a little bit of perspective into things, let me tell you that for more than two years at <a href="http://www.innerworkings.com/">InnerWorkings</a> we have adopted a continuous integration solution based on <a href="http://confluence.public.thoughtworks.org/display/CCNET">CruiseControl. NET</a> and <a href="http://nant.sourceforge.net/">NAnt</a>; unless you’ve read Jimmy’s brilliant manuscript of his upcoming <a href="http://www.jnsk.se/weblog/posts/AfterAR.htm">book</a> (in which I was honored to make a small contribution as guest author) you will be surprised to hear that we manage to automatically and continuously build, obfuscate, package, test and deploy several <em>hundred</em> .NET solutions.</p>
<p>While I think that we have done more than a reasonable job at maintaining a good degree of modularity and reuse in our XML scripts, our tolerance to NAnt’s notation has been tested several times.</p>
<p>Resorting to a DSL written on top of a full programming language as Martin suggests would definitely help, but I have the impression that a purely text-based language may still be rather inadequate at solving one of the issues that we often face, particularly when dealing with many scripts in parallel like our scenario requires: lack of run-time visibility about the progress of each build.<br />
Do I have a viable solution? I’m not sure, but I speculate that it won’t be long before we will see the raise of a new generation of continuous integration systems built around the upcoming <a href="http://msdn.microsoft.com/winfx/reference/workflow/default.aspx">Windows Workflow Foundation</a>, with steps defined using domain-specific activities.<br />
What do you think? Is it a daft idea?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilesensei.com/blog/articles/2006/03/19/sick-of-angle-brackets-dsl-modeling-is-maybe-the-cure/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

