I’ve recently joined a company using Java. I’m open minded, and know that there are lots of good things about the JVM and the modern Java language. However one thing I hate is the complete disregard for command line UX. People writing Java command line tools seem to think it’s absolutely fine to spew 1000 lines of unformatted informational messages and non actionable warnings with bizarre indentation and not to provide any flag to turn this shit off. It’s like they just view the terminal as some sort of obscure log file that no-one’s likely to look at.
Java programs are usually daemons and internally use a logging library, per default stdout is set up as one output for logging. One can usually configure the logging with the log4j or logback config files and even suppress stdout.
Nobody wants to be blamed for something not being in the logs, probably in production. So everybody adds everything to the logs, you can always filter out the noise but not the reverse, right? And very soon the logs are completely unusable for your regular-dev cycle. Of course in java world, the IDE reigns, and checking logs is an "antipattern" anyways, you must use the fantastic debugging GUI that is provided by the behemoth. Everything is normal, you see.
Especially annoying when reams of nonsense also gets 'unexpectedly' sprayed into the web browser of some poor sod using an enterprise app, just because Java is having a bad day. This seems to happen less than it used to a few years ago, so there is some progress going in in software engineering, somewhere.