Even though it’s very unlikely to become popular (and if so, it will probably take a while), there’s a lot you learn from creating a programming language that applies to other areas of software development. Plus, it’s fun!

  • I did, once. While I never completed a compiler, it was an utter disaster, in that - in retrospect - it was everything I’ve subsequently learned to hate about PLs: multiple ways of solving the same problems, multiple modalities, and lots of rules. I was picking the best things I liked from many PLs and putting them all into one PL, and it was a horrible idea. I didn’t start from fundamentals, and there was no BNF.

    I still have the design document, which was fairly complete in describing the syntax and operation; enough that I’m pretty sure that with some time and effort with a good LLM, I could probably get the LLM to build an interpreter or compiler. But looking back on it, man. Was that a complete waste of time.

    I don’t think I learned anything from the experience. Having had a long career and deep exposure to a wide variety of languages taught me more about what I value than anything else. For example, my favorite interview question for developers became: “what aspects of language X (that we’re hiring you for) do you dislike the most, and why? What are the biggest points of pain about the language?” Anybody can learn sufficient surface knowledge about a language to hiring tests; it’s the demonstration of understanding the pitfalls that’s most valuable.