I am asking the same question myself as someone with 8 years of experience in software development.

I've read this thread and went ahead and read a lot of comparison between languages and I have decided to go with Java.

For context I have been working mostly with Python for the last 4 years with a bit of C++ and the casual React/Js, before that a mix of VHDL and C.

In 2019 I gave a chance to Rust, Elixir, Golang and Clojure. I read at least a book on each, did all the exercises available in the books and did a small size project with Golang (around 5k LoC).

Clojure while cool doesn't seem to have a lot of jobs and I felt the ecosystem to be a bit immature (no big companies / projects behind it). Not only that but there's nothing I saw in Clojure that I thought -- wow Wish I could do that in Python! I also didn't come to some grandiose lisp revelation, maybe python has adopted enough of functional programming that it all seems OK-ish?!

Golang while cool gets under my skin to write anything bigger than a simple microservice. I feel the language doesn't have some OOP/functional constructs that I came to rely on. It really feels like the language makes me write "more dumb" code. I like explicit and simple constructs but it is a bit too much. I am cheering for Golang language evolution and hope it gets Generics/Exceptions.

Rust seems like a really cool idea! It has very cool concepts BUT it hasn't gained enough adoption yet for my taste. There aren't a lot of jobs or big projects using it. I am also only casually in the systems level programming space and I much prefer C/C++ when I get there because at least I remember the language constructs / syntax. Using Rust casually has been proven really hard as its syntax and concepts aren't mainstream yet and I always have to re-read the basics. Cargo is awesome. Cheering for Rust as well.

Elixir was super cool, really enjoyed going through the book I bought and doing the exercises. IMO it also lacks jobs and big projects using it. That said, it was the language that I enjoyed the most out of the new ones and had enough new concepts / a cool framework that it wowed me (unlike Clojure) ! Really cheering for Elixir to be more adopted!

Scala I gave up very early on, the amount of constructs / syntax and ways you can code are just too much for my pragmatic brain.

... so why Java?!

Java is very mature and has tons of well paying jobs. In the last 5-6 years it seems to have gained a lot of cool features that makes it much more pleasant to write. The community also seems to have changed its culture a bit on the AbstractFactoryFactoryFactory pattern.

But the best part is the ecosystem, the IDEs are top notch!

Start a project with Java + IntelliJ and it is awesome.
It makes all the difference to have a very solid ecosystem and proven tools / projects that rely on it. After using Java with IntelliJ writing Go feels like you're going back a lot of years.

Java is a language with better performance than Python/Javascript and it is static typed so a bit different.

I feel that with Java + Python + Javascript (for frontend) I have all the basis covered for 99.9% of the problems out there that interest me.

All these languages are battle proven and not going anywhere, they also look very similar to each other. I cannot stress how important it is for me that they look similar, if I am working 8h/day in a language I don't want to have to add cognitive overload to remembering how the syntax and language constructs work in Clojure, Rust or Elixir.