<story><title>Designing a Language Without a Parser</title><url>https://thunderseethe.dev/posts/type-inference/</url></story><parent_chain></parent_chain><comment><author>electroly</author><text>&amp;gt; However, once I start constructing a parser, progress slows to a crawl&lt;p&gt;I can&amp;#x27;t really relate here. The parser is the easiest part of a compiler; the work only increases from there. I feel like if you ran out of steam at the parser, you never had enough steam to write a whole compiler. I don&amp;#x27;t think removing the parser will take you across the finish line if you otherwise were running out of steam.&lt;p&gt;My advice is to write your language in vertical slices. Write the parsing, semantic checking, and code generation for the simplest features first and progressively add feature slices, rather than trying to write the entire parser for a fully-baked language before proceeding. Consider including &amp;quot;print&amp;quot; as a built-in statement so you can print things out (and thus write tests) before you have working expressions and function calls.</text></comment>
<story><title>Designing a Language Without a Parser</title><url>https://thunderseethe.dev/posts/type-inference/</url></story><parent_chain></parent_chain><comment><author>wpietri</author><text>Ooh, I like this. Too many people start projects at the logical beginning. But what you really want early on in a project is to maximize speed of exploration of the interesting parts.&lt;p&gt;To me there&amp;#x27;s a clear analogy with startups. The naive conception of starting a company is that you get a pile of money so you can hire a bunch of people and create important infrastructure. But with startups, you&amp;#x27;re trying something new, so the most efficient use of time is to find the riskiest hypotheses and test them as directly as possible. That often involves doing things that seem wrong if you proceed in the &amp;quot;logical&amp;quot; way. E.g., I knew a successful UGC company that didn&amp;#x27;t implement accounts and logins until like 6 months in. But that was fine, because actual accounts were not needed to figure out whether the business worked.</text></comment>