Interpreters are a great example of software tools where it's easy to settle for something that's easy to implement.
Many interpreters don't have native support for displaying result data types as images. I've only seen Racket and Smalltalk offer this.
miniblog.
Related Posts
Should lint suppressions be first class syntax or comments?
Adding a proper metadata system (e.g. Clojure or Rust) is a big design space but it's clear which expressions are affected.
Comments are much easier to implement but it's easy for users to get them wrong.
Thoughts?
I've added basic sum types to my programming language project, and it simplifies a bunch of stuff. Bool and Unit no longer need to be built-in types!
I'm now working on wrapped data, so I can implement Option :)
Every time I implement an interpreter with recursion, I regret it.
As soon as I want TCO, or userland control of stack limits, or resumable exceptions, I need my own stack.
This is awkward because it's an upfront design decision. Changing the stack model is a big refactoring.