Thoughtful article exploring upfront design versus evolutionary design, and contrasting with Worse Is Better.
The comments on the post is an impressive set of tech people too.
miniblog.
Related Posts
TIL Advent of Code and Project Euler will deliberately look for puzzles where the naive solution is worse than quadratic.
This ensures that people can solve them with any programming language. You don't want fast languages to be able to use the naive solution.
It's incredibly hard to explain adversarial problems to users. I see gamers sincerely asking "why doesn't the publisher just fix the cheater problem?".
This is exacerbated by the fact that sharing too many details of anticheat can make the problem worse.
Proper tail calls were added to the JS standard, but most implementations don't provide it. V8 even built it then removed it!
The concern is worse developer experience. An opt-in syntax has been proposed (cf loop/recur in Clojure) but no consensus.
https://www.mgmarlow.com/words/2021-03-27-proper-tail-calls-js/