All PLs have strengths and weaknesses, the notion of a 'general purpose PL' can stop us thinking critically. From
Related Posts
On thinking of books like software, treating them as evolving artifacts, and URLs versus paper book publishers: https://cs.brown.edu/~sk/Memos/Books-as-Software/
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'm implementing an interpreter, and wondering how often I should check for interruptions (e.g. Ctrl-C).
I don't want to spend too much CPU time checking whether I've been interrupted, but I also want slow programs to stop promptly. It's tricky.