https://kevinlynagh.com/newsletter/2025_06_03_prototyping_a_language/ - Back to Kevin's newslettersPublished: 2025 June 3 How do you prototype a nice language? I've spent the past month prototyping my codeCAD language. However, while I've made tons of zero-to-one-type progress (an EBNF grammar, parser, function definitions, evaluation, and numeric solving!), the current possible demos are all terribly underwhelming -- think the game programmer's "triangle with color gradient" or the hardware engineer's "PCB with a single blinking LED". However, even once I'm further along I suspect the demos will be fairly underwhelming -- I'm not one-shot prompting my way to production G-code or building a slick augmented reality, Minority Report UI. Rather, I'm after a particular kind of software hygge: Loads instantly, doesn't crash, and fits nicely in the hand. The objective is a feeling, and there's no point trying to convince people -- either the software exists and evokes the feeling, or it doesn't. Pitching it feels as nonsensical to me as pitching the deliciousness of an unbaked cake (which is why you haven't heard about my crunchy tiramisu). Unfortunately, this perspective makes prototyping tricky: How much baking is required to test an idea? For example: One idea I'm exploring is "bidirectional editing", so geometry can be manipulated using either: * a purpose-built graphical UI, or * the textual codeCAD language If you graphically drag a point around, the coordinates in the source code should automatically update. If you edit the source code, the graphical UI should automatically update. A simple way to test this idea is to throw a