Like COBOL, I believe Java will continue to be the bread and butter of application programmers long after crossing popularity curves with a dead slug.
Another statically typed language, non-JVM, with decent momentum is Go. It's like C with a slew of sorely needed improvements. Very straightforward and there's often a single, obvious way to get something done. As a result I find I'm very productive in it. Performance is topnotch too. Tooling is quite good. I'm not sure it replaces Java as an "Enterprise" language for large-team projects though.
Kotlin is another "better Java" language on the JVM. Pleasant enough to work with, but not as large an adopting community. Tooling is good if you like IntelliJ.
C# is Microsoft's challenge to Java. Has borrowed some good ideas from Java and extended them, interfaces well with Windows (obviously). Tooling is good if you like Visual everything and Microsoft.
Now may be a good time to switch to a language that more fully embraces functional programming. F# and OCaml are possibilities, Erlang has a great rep for stability, and Haskell is said to be very powerful but with a daunting learning curve.
I'm experimenting with all of these and have the damndest time making up my mind. There's kind of an embarrassment of choice.