Essa questão foi levantada e respondida por um usuário no quorum.com. Eis a resposta dele:
Java tem muito a oferecer.Em primeiro lugar, há muitos empregos para desenvolvedores Java, então essa é uma das razões para ser um.Mas por que as pessoas ainda usam Java, inclusive para novos projetos?Java ainda é o melhor da classe para muitos aplicativos. É a melhor maneira de construir um sistema back-end sólido, rápido, escalável e livre de bugs. Tem a JVM mais rápida. Apenas C ou C++ é mais rápido e apenas em certas circunstâncias restritas, como otimização de algoritmo de computação. Java também é a linguagem do Android, o sistema operacional de smartphone mais amplamente implantado no planeta.Mais recentemente, linguagens populares de alto nível, como python ou ruby, podem ser melhores para a produtividade do desenvolvedor, flexibilidade e iteração rápida devido a menos verbosidade de código e cruft. Mas a natureza dinâmica dessas linguagens, embora fantásticas para muitos aplicativos amplos, começa a falhar quando um projeto se torna muito grande, muitos desenvolvedores estão envolvidos ou quando a velocidade e a tolerância a falhas são críticas. Existem técnicas e convenções para contornar os problemas de estabilidade de código da tipagem dinâmica, mas técnicas e convenções significam que as pessoas precisam segui-las e, mesmo assim, existem vulnerabilidades difíceis de prevenir.
PHP, que é usado em todo o Facebook para codificação de back-end, foi estendido pelo Facebook para fornecer tipagem estática e compilação dinâmica para que pudesse fornecer a velocidade e a estabilidade do Java. Linguagens exóticas, como Scala, Haskel, Erlang e Golang, serão principalmente para aplicações específicas mais adequadas a elas.
Java é a linguagem mais popular para código reutilizável:
E também a linguagem mais usada depois das linguagens de script JavaScript e SQL:
Então o Java está aqui para ficar, mesmo que possa estar se tornando o novo COBOL.EDIT em 2020 – Alguns apontaram nos comentários que Rust é uma linguagem promissora, e Go está se firmando como uma linguagem de servidor de back-end escalável. Java provavelmente não é o “melhor” atualmente em termos de abstração e velocidade de execução, mas ainda possui uma base instalada tremendamente grande de bibliotecas que essas linguagens mais novas ainda não possuem.