<story><title>I am afraid to inform you that you have built a compiler (2022)</title><url>https://rachit.pl/post/you-have-built-a-compiler/</url></story><parent_chain><item><author>ashton314</author><text>It&amp;#x27;s funny how projects grow like this organically.&lt;p&gt;Perhaps burned by experience, one time I implemented a mini-language for specifying some business logic that I knew—just &lt;i&gt;knew&lt;/i&gt;—that our client would change his mind on a dozen times and not understand the half of the ramifications of his requests and would only arrive at the solution he &lt;i&gt;really&lt;/i&gt; wanted by trial-and-error. Was the little language I made as complex as a &amp;quot;real&amp;quot; compiler? Goodness no. Was I happy to have a flexible language-based solution? True to my predictions, I &lt;i&gt;did&lt;/i&gt; get many, many logic change request and handled them with ease. Yes, I was very happy after that.</text></item></parent_chain><comment><author>toyg</author><text>I cut that particular gordian node, once, by simply embedding a JS engine, and explaining to them (and documenting) the bare minimum of the language that they needed to achieve their objectives. After a week of getting to grip with it, they loved it so much that they kept it into production for years, happily tweaking scripts as they needed.&lt;p&gt;I should have charged them more than I did.</text></comment>
<story><title>I am afraid to inform you that you have built a compiler (2022)</title><url>https://rachit.pl/post/you-have-built-a-compiler/</url></story><parent_chain><item><author>ashton314</author><text>It&amp;#x27;s funny how projects grow like this organically.&lt;p&gt;Perhaps burned by experience, one time I implemented a mini-language for specifying some business logic that I knew—just &lt;i&gt;knew&lt;/i&gt;—that our client would change his mind on a dozen times and not understand the half of the ramifications of his requests and would only arrive at the solution he &lt;i&gt;really&lt;/i&gt; wanted by trial-and-error. Was the little language I made as complex as a &amp;quot;real&amp;quot; compiler? Goodness no. Was I happy to have a flexible language-based solution? True to my predictions, I &lt;i&gt;did&lt;/i&gt; get many, many logic change request and handled them with ease. Yes, I was very happy after that.</text></item></parent_chain><comment><author>alanfranz</author><text>Now the question is: did you make your client pay for each request _just as if you didn’t build such dsl_?&lt;p&gt;In my experience, most developers-as-consultants aren’t good at that. So, when we’re (rightfully) late, we probably reduce our margins. When we do a great job, we don’t make the client pay for his own mistakes.</text></comment>