title: When should I use a Domain Specific Language?
body: <p>I would like some practical guidance on when I should use a <a href="http://en.wikipedia.org/wiki/Domain-specific_programming_language" rel="noreferrer">Domain Specific Language</a>.  I have found resources about advantages and disadvantages, but what kind of project would warrant its use?</p>
  
  <p>It seems like there is a big investment in time to create and maintain a DSL, so in what application space would I get a productivity return on my time investment?</p>
  
  <p><strong>Edit:</strong> It seems the most common use of DSL is for file formats for persisting data state, what about using a DSL for program logic and structure(perhaps code generation)?  When is this feasible?</p>
  
  <p><strong>Edit #2</strong> I am mainly asking about when is creating a specific DSL worthwhile.  Of course we should use existing DSLs as much as possible to save time.</p>