Which is not a fault of the Java language: trainwrecks (this-&gt;getThat()-&gt;getThose()-foreach(){ do stuff } is a general antipattern.<p>The correct way is IMO: colleague.getMoney() which can easily be implemented in Java, PHP etc.<p>I&#x27;m getting a bit tired of this constant pecking at Java (nothing personal). There are a number of questionable designs yes, there is a lot of ugly code out there, yes, but almost every alternative might have been worse:<p>Teaching everyone C? Good luck.<p>Switch to C#? Until recently that would prevent you from using Linux on your servers unless you were ready to put in technical effort and bet on MS not suing you or the upstream effort.<p>Perl?<p>PHP?<p>Catch my drift folks? Java filled a niche. It was almost as easy as PHP once you got started (although onboarding still is messy I think) and provided superior tooling.