Somehow I just fail to unterstand how a technology like 'Java' can still be popular in 2019. At least to me it seems that there are much better alternatives for almost any use case I can think of.
Java is just a C based language for all intents and purposes. The ecosystem is why Java is popular. For a very long time Sun maintained a stronghold on the way things were done and all the libraries and frameworks followed suit. What this means in practice is that most of the libraries follow strongly opinionated conventions.
Any time you are trying to solve a problem in a domain you are unfamiliar with, you have two problems. One is understanding the problem, two is understanding the framework's bizarre way of solving it. Java mitigates this in that most of the libraries and frameworks seem "familiar" and do things in a similar way.
I do see a lot of programmers that seem to eschew the ecosystems available to them and prefer to write all the code themselves. In that case, maybe Java is not compelling.
There's just an enormous supply of Java developers and consultants around, which makes it an easy business decision when deciding the technology to base your projects on. I would not be surprised if a very significant majority of Java code being written today is boring business logic and dime-a-dozen web services.
For new OSS or hobby/pet projects I can also not come up with a single reason to use Java, except "I don't know anything else and don't want to invest time learning"
I hate Java. It wasn't the first language I learned, but it wasn't the 2nd or 3rd either, so I don't think it's just inexperience. It feels like everything takes 3 times as long in C# as Javascript (though I understand AND appreciate why). It feels like Java takes 10x the time, and I DONT understand why. Everything seems overly convoluted. Even recent features like streams.
Any time you are trying to solve a problem in a domain you are unfamiliar with, you have two problems. One is understanding the problem, two is understanding the framework's bizarre way of solving it. Java mitigates this in that most of the libraries and frameworks seem "familiar" and do things in a similar way.
I do see a lot of programmers that seem to eschew the ecosystems available to them and prefer to write all the code themselves. In that case, maybe Java is not compelling.