<?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>Software Development At Heart &#187; Domain-Specific Languages</title>
	<atom:link href="http://ruicurado.com/category/domain-specific-languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://ruicurado.com</link>
	<description>Passionate About Software Development</description>
	<lastBuildDate>Wed, 28 Jul 2010 23:24:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>The Hidden Costs of Domain-Specific Languages</title>
		<link>http://ruicurado.com/2009/11/25/the-hidden-costs-of-domain-specific-languages/</link>
		<comments>http://ruicurado.com/2009/11/25/the-hidden-costs-of-domain-specific-languages/#comments</comments>
		<pubDate>Wed, 25 Nov 2009 00:49:54 +0000</pubDate>
		<dc:creator>Rui Curado</dc:creator>
				<category><![CDATA[Domain-Specific Languages]]></category>

		<guid isPermaLink="false">http://ruicurado.com/?p=71</guid>
		<description><![CDATA[While I am a big fan of Domain-Specific Modeling, I am openly not in favor of Domain-Specific Languages. DSL supporters advocate many good things. Are they real? Is it the whole truth?
Let&#8217;s see some good (valid) points about DSL&#8217;s:

It&#8217;s domain-specific (duh!)
Encapsulates boring details
Can increase abstraction to the next level

And other not so valid points:

It&#8217;s a [...]]]></description>
			<content:encoded><![CDATA[<p>While I am a big fan of Domain-Specific Modeling, I am openly not in favor of Domain-Specific Languages. DSL supporters advocate many good things. Are they real? Is it the whole truth?</p>
<p>Let&#8217;s see some good (valid) points about DSL&#8217;s:</p>
<ul>
<li>It&#8217;s domain-specific (duh!)</li>
<li>Encapsulates boring details</li>
<li>Can increase abstraction to the next level</li>
</ul>
<p>And other not so valid points:</p>
<ul>
<li>It&#8217;s a Shiny New [mainstream] Thing. Most developers love that</li>
<li>It&#8217;s cool and I can do it too</li>
</ul>
<p>The first are very enticing, valuable, and sought for, and most of DSL&#8217;s attraction I guess comes from these features. But, will it pay off?</p>
<p>I really don&#8217;t have much experience with DSLs, so I won&#8217;t use my own arguments. I&#8217;ll let the community speak for myself. Here is a tiny sample of DSL criticism:</p>
<p><a title="http://c2.com/cgi/wiki?DomainSpecificLanguage" href="http://c2.com/cgi/wiki?DomainSpecificLanguage">http://c2.com/cgi/wiki?DomainSpecificLanguage</a></p>
<blockquote><p><span style="color: #333399;">&#8230; the <em>Tower Of Babel</em> effect that results from having so many languages that a person needs to be familiar with (if not master) in order to get common jobs done.<br />
&#8230;<br />
writing a good DSL that is robust and reusable beyond a limited context, is a lot of work. It requires persons with both domain expertise and language design expertise (not necessarily the same person) to pull off. A truly reusable DSL will require reasonable documentation, otherwise it won&#8217;t survive the departure of its designers.</span></p></blockquote>
<p><a title="http://www.theserverside.com/news/thread.tss?thread_id=42078" href="http://www.theserverside.com/news/thread.tss?thread_id=42078">http://www.theserverside.com/news/thread.tss?thread_id=42078</a></p>
<blockquote><p><span style="color: #333399;">The other mistake some folks make is they think that with a DSL that &#8220;non-coders&#8221; can actually use the DSL.</span></p>
<p><span style="color: #333399;">But since a DSL is designed for automation of an underlying objet model, writing in a DSL is just like writing in any language &#8212; whether it&#8217;s DOS .BAT files or Java, and it takes a coding mindset and understanding of the underlying domain as represented by the computer in order to make effective use.</span></p></blockquote>
<p>There was much more written on this thread. You can go to the original page to read more opinions.</p>
<p>As general use of DSLs become mainstream, so become the complaints about their shortcomings. If we take so much time to master a general purpose language, should we invest a comparable amount of time in limited-use languages? How can we get support for a DSL, apart from its own creators? Where&#8217;s community support? What happens after the departure of the language&#8217;s creator? What&#8217;s BNF? Do I need it?</p>
<p>DSL critics say really useful DSLs are hard and expensive to create. DSL supporters answer that DSLs are not designed, they evolve. Well, won&#8217;t any of those &#8220;evolutionary steps&#8221; risk breaking the entire development based on that DSL, much like a broken app build? Will the evolution in the language be severe enough to trash what has been done so far? Can you imagine yourself developing a complex C++ software system while C++ itself was still being designed and developed?</p>
<p>Still too many unanswered questions.</p>
]]></content:encoded>
			<wfw:commentRss>http://ruicurado.com/2009/11/25/the-hidden-costs-of-domain-specific-languages/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
