Strict-by-default vs Lazy-by-default https://www.barrucadu.co.uk/posts/2016-02-12-strict-vs-lazy.html (clear, readable defense of lazy programming languages)
Related Posts
When a tool supports both regular expressions and literal strings, which should be the default?
If you default to regex, users can match more strings than they realise (e.g. `foo.txt`) or less (e.g. `foo(bar)`).
I typically see regex as the default, but I prefer the opposite.
It's odd how lazy evaluation is generally seen as a niche design choice, yet the vast majority of languages treat `foo() || bar()` as short-circuiting.
It's interesting to see the "why not Rust?" discussions around the TypeScript news that they're using Go. It shows that Rust has reached a level of maturity that it's a default for some users.
Go does seem to be in a sweet spot for AOT languages with GC though.