"If you’re not sure what you want to do, just do Java. It’s a shitty programming language that’s good at almost everything."
- I agree, 100%.
And here's a take that a lot of the folks will disagree, and categorically state that these both belong to two entirely different domains: "Rust, is the evolution of Java. Not Kotlin, not Scala, not clojure, but, Rust".
The context dependency injection is so so so good. Once we switched over to json & Jax-rs, it made such a great simple direct backend. Good throughput. Just, a bit high memory.
I feel like Go has a similar role to Java. Although it's mercifully free of inheritance and the functional stuff they've bolted on.
Rust has a similar role to C++ but reads more like Python and Elixir's lovechild.