﻿<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Ayende @ Rahien</title><link>http://ayende.com</link><description>Ayende @ Rahien</description><copyright>Copyright (C) Ayende Rahien  2004 - 2021 (c) 2026</copyright><ttl>60</ttl><item><title>Steve Campbell commented on The quote generation DSL</title><description>I had to write a similar application some years ago.  If you're interested, since its customer-facing you can see it in operation at http://www.zarebasystems.com/products/fenceplanningtool.aspx
  
  
(bear in mind it is intended for users that are already familiar with most of the terminology)
  
  
I took the approach of tagging information onto various items in the database.  This is pretty much the same as the XML approach.
  
  
The code looks similar to your DSL, in that it can read the declarative attributes and make decisions based on that.  As with your example, the approach ate the complexity (and there is a lot) for breakfast.  The reason has nothing to do with a DSL though - it is because of the metadata (tagging) paradigm.
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment7</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment7</guid><pubDate>Mon, 31 Mar 2008 18:38:42 GMT</pubDate></item><item><title>Ayende Rahien commented on The quote generation DSL</title><description>Oh my!
  
I did (http://www.ayende.com/Blog/archive/2008/01/30/Purely-declarative-DSL.aspx)
  
  
I forgot about posting it.
  
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment6</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment6</guid><pubDate>Mon, 31 Mar 2008 16:40:59 GMT</pubDate></item><item><title>Thomas Krause commented on The quote generation DSL</title><description>Didn't you post the exact same example 2 months ago? Just wondering...
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment5</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment5</guid><pubDate>Mon, 31 Mar 2008 16:38:45 GMT</pubDate></item><item><title>Ayende Rahien commented on The quote generation DSL</title><description>In general, I find that having a real language in place make it possible to define a few core concepts and run with them, rather than having to define a lot of secondary stuff or &lt;if&gt;
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment4</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment4</guid><pubDate>Mon, 31 Mar 2008 16:34:48 GMT</pubDate></item><item><title>Mats Helander commented on The quote generation DSL</title><description>Code is data, data is code :-)
  
  
But I don't really see why the declarative approach fails to scale - actually even for pretty decent complexity. And if you're capturing domain concepts, shouldn't you try to capture a few more here rather than resort to programming if else statements?
  
  
Also, note that the if-else code doesn't match the declared business rules above: 
  
  
(else kicks in for userCount == 500 too, but the rule is "if the user count is great than 500"  ;-) )
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment3</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment3</guid><pubDate>Mon, 31 Mar 2008 16:25:24 GMT</pubDate></item><item><title>Ayende Rahien commented on The quote generation DSL</title><description>It is a data format, not a DSL.
  
Notice the problem with it scaling even for a very simple complexity.
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment2</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment2</guid><pubDate>Mon, 31 Mar 2008 15:50:33 GMT</pubDate></item><item><title>Mats Helander commented on The quote generation DSL</title><description>@Ayende,
  
  
Why do you say the XML example is not a DSL ?
  
  
Isn't the XML version just one possible syntax for your DSL ?
  
  
/Mats
</description><link>http://ayende.com/3237/the-quote-generation-dsl#comment1</link><guid>http://ayende.com/3237/the-quote-generation-dsl#comment1</guid><pubDate>Mon, 31 Mar 2008 12:49:05 GMT</pubDate></item></channel></rss>