

I think Ousterhout’s observation that deep interfaces are more useful is a very astute one. There is a kind of programmer who finds it satisfying to write lots of boilerplate but it doesn’t make the code maintainable.
Short functions can be good because you then name each short section of code, but a comment can offer that more flexibly.

Agreed. And a lot of it is working around limitations of whatever version of Java was common at the time.
“Visitor pattern” is better implemented as an implementation of Iterator or whatever your language calls that. Everyone knows what “for x in thing” means, but wtf does it mean to “visit” something?