Programming languages evolve to replace the all-powerful 'lo...

Programming languages evolve to replace the all-powerful “low-level” constructs with more limited constructs that reduce to the low-level ones. It’s why you get things like interfaces over inheritance.

The corollary of this is that if you use a powerful construct, it should be because the limited one can’t do what you want. Don’t force an infinite for-loop!

High-level features are more limited constructs that compile down to the low-level ones.

www.joshbeckman.org/notes/705760520