![](https://programming.dev/pictrs/image/40ed4e74-ef5b-46ae-9461-bef1201e31b1.png)
People hate Java when they are forced to use it. Or when they switch from other language to the Java and expect same semantics and behaviour. Historically Java was quite bad in character/sense ratio this coupled with Enterprise patterns and people who have no idea how to write programs on java resulted in atrocious code bases with nightmare episodes. Currently I am writing non-stop Java for about 15 years. And I am able to tolerate Java quirks, because I know how to side step them. I don't like Java, but given the choice I would pick it as a language that I am willing to code for money out of many others. Java have amazing ecosystem, ci/cd culture and instruments. Dunking on "bad" language is okay especially in the joke context.
In the end there is no ideal language, they are just more or less fitting for a task or role.
This is a good example of what understanding your tools can give you. Answer is new or novel approaches to the old problems. Ability to create a patch from any diff is really really usefull. If you have wip changes, but don't want to commit it to, then creating a patch is a quite easy way to go.