Writing a parser that is resilient to syntax errors, and why a parser should always return something: https://duriansoftware.com/joe/constructing-human-grade-parsers
(The latter property is important in e.g. IDEs and it's rarely discussed!)
miniblog.
Related Posts
I like that most LLM UIs show your previous queries prominently.
When figuring out where LLMs are useful in your workflow, it's nice to see what worked well (or not) in the past.
Web search doesn't have this property. I rarely look at what I've previously googled.
One interesting property of both stdin/stdout based REPLs and RPC based REPLs is that they need to support asynchronous events.
In both these programs, I don't need to wait until the function is done to see the output printed. It's not sufficient to read-eval-wait-print-loop.
One nice property of key-value punning is how it reduces the risk of accidental reordering.
Point { x, y, z } is less verbose than Point { x: x, y: y, z: z } and less error-prone than Point(x, y, z).

