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.
Related Posts
A funny side effect of building software in Rust: my machine OOMs much more during development.
I'm not entirely sure why. I think Rust makes it easy to allocate data quickly, and sooner or later you write an infinite loop when coding.
TIL Tcl has a notion of 'safe interpreters', a mode where you can run untrusted code in a sandbox: https://www.tcl.tk/man/tcl8.4/TclCmd/safe.htm
Not many programming languages have this, but it's way safer to include in the implementation than try to build as a userland library.
I love how the CommonMark Spec has a test suite that's just a JSON array. It's really easy to test a library for compliance, and I've seen developers nerd-sniped into full compliance.
https://spec.commonmark.org/0.31.2/spec.json