Just A Summary : Martin Fowler's big mouthful http://bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful.rss en-us 40 Piers Cawley Practices Punditry Comment on Martin Fowler's big mouthful by Daniel Berger <p>I&#8217;d be curious to see how the Jifty example was implemented. Looks pretty good, actually.</p> Sat, 19 Jan 2008 02:09:22 -0600 urn:uuid:d3346ade-2f55-4987-8b8f-853e00b3e505 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1190 Comment on Martin Fowler's big mouthful by she <p>hey piers, hope you dont mind a dissenting opinion about one thing (whereas I think the rest of the article is nice)</p> <p>It is about the word &#8220;pidgin&#8221;. I think the word is not good to address &#8220;internal DSLs&#8221;. The whole <span class="caps">DSL</span> area seems to confuse people. I read someone else claiming that <span class="caps">BLAST</span> is a <span class="caps">DSL</span> (but <span class="caps">BLAST</span> is just a simple, &#8220;stupid&#8221; dataset!)</p> <p>So the term <span class="caps">DSL</span> is already inflated due to various reasons (i myself prefer to define <span class="caps">DSL</span> as something from humans, for humans, and thus nicely readable but capable or &#8220;programmed&#8221; to do something useful), and now instead of referring as &#8220;internal <span class="caps">DSL</span>&#8221; someone is using &#8220;pidgin&#8221;. Now I dont at all think you should change your way to label this ;) but I want to present my point of view, that this adds to confusion in general about <span class="caps">DSL</span> and <span class="caps">DSL</span> usage.</p> <p>Anyway&#8230; I hope it won&#8217;t become like Monads in Haskell in the long run ;)</p> Sat, 19 Jan 2008 05:48:31 -0600 urn:uuid:28aa17df-e4c9-45e9-a46e-4589f6bc40c6 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1191 Comment on Martin Fowler's big mouthful by Mark Snyder <p>Hmm, odd nomenclature&#8230; most of the literature I have encountered has settled on &#8220;embedded DSLs.&#8221;</p> <p>This technique of building an <span class="caps">AST</span> under the covers is used quite often in the Haskell community. In Haskell, monads and phantom types are the &#8220;corners&#8221; of the language that makes this possible. And both are mechanisms which &#8211; to agree with you &#8211; are very specific to Haskell. Take a look at &#8220;Domain Specific Embedded Compilers&#8221; by Daan Leijen and Erik Meijer if you are interested.</p> <p>As for Martin Fowler, I appreciated some of his earlier writings on <span class="caps">UML</span> and Object Oriented Architecture, but I am increasingly getting the feeling that he is out of his depth when discussing programming language issues.</p> Sat, 19 Jan 2008 11:24:55 -0600 urn:uuid:6b1be200-e8ca-4f1f-8892-21b4eee47239 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1192 Comment on Martin Fowler's big mouthful by Piers Cawley <p>She said:</p> <blockquote> <p>I read someone else claiming that <span class="caps">BLAST</span> is a <span class="caps">DSL</span> (but <span class="caps">BLAST</span> is just a simple, “stupid” dataset!)</p> </blockquote> <p>Um&#8230; the person who described <span class="caps">BLAST</span> as a <span class="caps">DSL</span> was me. And I still stand by that. Just because a language isn&#8217;t (usually) executable doesn&#8217;t disqualify it as a language.</p> <p>As for why &#8216;pidgin&#8217;, it&#8217;s precisely to get away from the over inflation of the term <span class="caps">DSL</span> and an attempt to unpack the way that these things are an amalgam of the grammar of a host and vocabulary from the domain and the host language. I <a href="http://www.bofh.org.uk/articles/2007/08/08/domain-specific-pidgin" rel="nofollow">blogged about it</a> back in August.</p> Sat, 19 Jan 2008 20:48:54 -0600 urn:uuid:b4e5c7dc-f312-4920-859e-cc54b49fa899 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1193 Comment on Martin Fowler's big mouthful by Was it a cat i saW <p>I agree with Mark: people are now using &#8220;embedded DSLs&#8221;. Why pollute the namespace with yet one more term that must be explained every time you use it?</p> Sun, 20 Jan 2008 01:16:16 -0600 urn:uuid:ad00677d-46b2-4105-bcc3-1fc7a6cdc4d7 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1194 Comment on Martin Fowler's big mouthful by Piers Cawley <p>Why use pidgin? Precisely because it <em>doesn&#8217;t</em> muddy the water around a disputed term like <span class="caps">DSL</span> &#8211; which is becoming so overused in certain circles as to become almost meaningless.</p> <p>If you don&#8217;t want to use the term, you&#8217;re welcome not to, but I shall continue to use it, if only because, once it&#8217;s been explained, it&#8217;s shorter to type than &#8216;embedded <span class="caps">DSL</span>&#8217; and the temptation to write &#8216;DSL&#8217; where I mean &#8216;embedded <span class="caps">DSL</span>&#8217; won&#8217;t be there at all.</p> Sun, 20 Jan 2008 03:45:32 -0600 urn:uuid:57efe486-5001-4499-9c12-f929f92ded13 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1195 Comment on Martin Fowler's big mouthful by Daniel Berger <p>I vote for <span class="caps">DSI</span> &#8211; Domain Specific Interface. As chromatic often says, it&#8217;s just an interface. But it&#8217;s, you know, domain specific. And more descriptive than &#8216;pidgin&#8217;. Plus, you still get a nice, short acronym. :)</p> Sun, 20 Jan 2008 07:23:53 -0600 urn:uuid:b27a6100-4568-4a0d-8848-300d4cac378a http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1196 Comment on Martin Fowler's big mouthful by Piers Cawley <p>Except that sometimes that sells what&#8217;s being done short. Admittedly, something like ActiveRecord&#8217;s family of class methods isn&#8217;t much more than a Domain Specific Interface (and a pretty good one at that), but pidgins like the one used in Jifty&#8217;s Schema definitions end up building an Abstract Syntax Tree (or something very like it) which is interpreted by different tree walking Interpreters depending on whether it&#8217;s being used to build the database, generate accessor methods or automagically build <span class="caps">HTML</span> forms and that&#8217;s language technology that is. The tree may be being built in a somewhat unorthodox fashion, but the backend(s) have all the trappings of a language.</p> Sun, 20 Jan 2008 15:22:10 -0600 urn:uuid:459d206d-827e-4be0-8c3d-a490364827b6 http://www.bofh.org.uk/articles/2008/01/18/martin-fowlers-big-mouthful#comment-1197