<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Thoughts on Martin Fowler&#8217;s Domain Specific Languages Overview</title>
	<atom:link href="http://blog.snowtide.com/2007/04/16/thoughts-on-martin-fowlers-domain-specific-languages-overview/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.snowtide.com/2007/04/16/thoughts-on-martin-fowlers-domain-specific-languages-overview</link>
	<description>building complex, innovative software and the business that goes with it</description>
	<pubDate>Fri, 04 Jul 2008 12:52:53 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Chas Emerick</title>
		<link>http://blog.snowtide.com/2007/04/16/thoughts-on-martin-fowlers-domain-specific-languages-overview#comment-60</link>
		<dc:creator>Chas Emerick</dc:creator>
		<pubDate>Tue, 17 Apr 2007 11:06:41 +0000</pubDate>
		<guid isPermaLink="false">http://blog.snowtide.com/2007/04/16/martin-fowler-domain-specific-languages-overview#comment-60</guid>
		<description>Uri:

I guess that's why I prefaced that paragraph with "...in my experience...".  :-)

As I said in point #2, I don't think Java can host an internal DSL, simply because of its syntax.  As for other general purpose languages hosting internal DSLs that are usable by non-programmers?  I think that's entirely doable, especially if the host language is something that permits one to define syntactic and semantic conventions that can be sensibly mapped onto the problem domain.

But it sounds like you're considering use cases where the "solution programmer" and the "framework programmer" are far apart -- in a vendor/customer relationship perhaps.  In that case, I can see how you would want to use an external DSL, as the customer would then not be able to muck things up badly by using the full utility of the language hosting an internal DSL.

I've certainly witnessed such scenarios, but only in passing -- in the domains I work in, DSLs are often (close to) a magic bullet for making the hardest programming tasks possible and maybe even manageable (which is what I was referring to in point #1).  In these cases, there is still a proper "separation of responsibility", but there's no vendor/customer relationship -- it's usually more like an architect/junior programmer relationship.</description>
		<content:encoded><![CDATA[<p>Uri:</p>
<p>I guess that&#8217;s why I prefaced that paragraph with &#8220;&#8230;in my experience&#8230;&#8221;.  <img src='http://blog.snowtide.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>As I said in point #2, I don&#8217;t think Java can host an internal DSL, simply because of its syntax.  As for other general purpose languages hosting internal DSLs that are usable by non-programmers?  I think that&#8217;s entirely doable, especially if the host language is something that permits one to define syntactic and semantic conventions that can be sensibly mapped onto the problem domain.</p>
<p>But it sounds like you&#8217;re considering use cases where the &#8220;solution programmer&#8221; and the &#8220;framework programmer&#8221; are far apart &#8212; in a vendor/customer relationship perhaps.  In that case, I can see how you would want to use an external DSL, as the customer would then not be able to muck things up badly by using the full utility of the language hosting an internal DSL.</p>
<p>I&#8217;ve certainly witnessed such scenarios, but only in passing &#8212; in the domains I work in, DSLs are often (close to) a magic bullet for making the hardest programming tasks possible and maybe even manageable (which is what I was referring to in point #1).  In these cases, there is still a proper &#8220;separation of responsibility&#8221;, but there&#8217;s no vendor/customer relationship &#8212; it&#8217;s usually more like an architect/junior programmer relationship.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Uri Shani</title>
		<link>http://blog.snowtide.com/2007/04/16/thoughts-on-martin-fowlers-domain-specific-languages-overview#comment-59</link>
		<dc:creator>Uri Shani</dc:creator>
		<pubDate>Tue, 17 Apr 2007 06:35:15 +0000</pubDate>
		<guid isPermaLink="false">http://blog.snowtide.com/2007/04/16/martin-fowler-domain-specific-languages-overview#comment-59</guid>
		<description>One notable statement you make about external DSLs is really incorrect, when looking at DSLs for the non-programmer, or the Domain (D in DSL) expert who need/should not be Java or other GPL  literate. Here the advantages are huge in productivity and have important implications on system architecture and application design with well thought separation of responsibility between the framework programmer (GPL fluent) and the solution programmer (DSL author).</description>
		<content:encoded><![CDATA[<p>One notable statement you make about external DSLs is really incorrect, when looking at DSLs for the non-programmer, or the Domain (D in DSL) expert who need/should not be Java or other GPL  literate. Here the advantages are huge in productivity and have important implications on system architecture and application design with well thought separation of responsibility between the framework programmer (GPL fluent) and the solution programmer (DSL author).</p>
]]></content:encoded>
	</item>
</channel>
</rss>
