The horror of the single inheritance that forces you to use composition instead.
The boredom of knowledge which exception every method throws.
The narrowness of generics that don’t allow duck typing.
The oppression of monads and pattern matching.
The poverty of a central package repository and only 2 package managers.
The pressure of choice between dozens of garbage collectors for different workloads.
The promiscuity of the single platform that interconnects various programming languages and allows all of them to use features like state-of-the-art profile-guided optimizations.
The horror of the single inheritance that forces you to use composition instead.
The boredom of knowledge which exception every method throws.
The narrowness of generics that don’t allow duck typing.
The oppression of monads and pattern matching.
The poverty of a central package repository and only 2 package managers.
The pressure of choice between dozens of garbage collectors for different workloads.
The promiscuity of the single platform that interconnects various programming languages and allows all of them to use features like state-of-the-art profile-guided optimizations.
The horrible world of Java.