<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Weblog: Domain Specific Languages explained</title>
    <link>http://blog.mkolodziej.net/articles/2010/01/28/domain-specific-languages-explained</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>by &lt;a href="/pages/about"&gt;Maciek Kolodziej&lt;/a&gt;</description>
    <item>
      <title>Domain Specific Languages explained</title>
      <description>&lt;p&gt;The idea of creating internal DSLs in programming languages has always seemed kind of awkward to me. How can you create a DSL in Lisp for example? It would just be a collection of classes and mehtods/functions that you call - in other words a &lt;em&gt;library&lt;/em&gt; or an &lt;em&gt;API&lt;/em&gt; and with those pesky parentheses on the top. And to be honest, I&amp;#8217;ve never dug any deeper into this subject, because it only seemed a fancy name for an old thing to me. &lt;/p&gt;

&lt;p&gt;But yesterday while browsing the most popular Ruby questions on &lt;a href="http://stackoverflow.com"&gt;stackoverflow&lt;/a&gt;, I &lt;a href="http://stackoverflow.com/questions/150638/ruby-off-the-rails/151409#151409"&gt;found a link&lt;/a&gt; to a very nice &lt;a href="http://obiefernandez.com/presentations/obie_fernandez-agile_dsl_development_in_ruby.pdf"&gt;presentation on DSLs (PDF)&lt;/a&gt; by Obie Fernandez. It kind of opened my eyes on what it is all about and, what is more important, nicely showed what were the initial ideas behind RoR. Make it a DSL for writing web applications!&lt;/p&gt;

&lt;p&gt;And I really liked this quote from &lt;a href="http://weblog.jamisbuck.org/"&gt;Jamis Buck&lt;/a&gt;: &lt;/p&gt;

&lt;blockquote&gt;
    &lt;p&gt;&amp;#8220;The fascinating thing is that, in my experience, most well-written Ruby
    programs are already a DSL, just by nature of Ruby’s syntax.&amp;#8221;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I think it really helps to remember what you should expect of yourself when writing a new piece of code in Ruby.&lt;/p&gt;

&lt;p&gt;PS. Two years is a pretty nice interval between blog posts, isn&amp;#8217;t it? At least a realistic target for me ;). Guess one shouldn&amp;#8217;t have taken the &amp;#8220;I’ll be writing more about that soon&amp;#8221; seriously.&lt;/p&gt;</description>
      <pubDate>Thu, 28 Jan 2010 00:45:00 -0800</pubDate>
      <guid isPermaLink="false">urn:uuid:5c5e7ba5-2521-46df-bb61-2ec05a10eb21</guid>
      <author>Maciej Kołodziej</author>
      <link>http://blog.mkolodziej.net/articles/2010/01/28/domain-specific-languages-explained</link>
      <category>ruby</category>
      <category>programming</category>
      <trackback:ping>http://blog.mkolodziej.net/articles/trackback/18665</trackback:ping>
    </item>
  </channel>
</rss>
