@robinsyl I suspect it's because it tends to be more visually obvious in Java; stuff has really long names because every layer of abstraction is explicitly named.
In Python it's a lot more insidious; it *looks* like you only have a few levels of indirection, but in practice you're still constantly writing the same boilerplate code at each of them, it's just not packed away into something with a separate name