Isso é apenas a minha opinião pessoal biased, ok?
-
Porque eu programo em Java há muito tempo e acho uma linguagem muito mais prazerosa do que C++. Mais fácil, menos complexa, mais alto nível, menos propensa a bugs, etc.
-
Manter um projeto grande e complexo em C++, com uma equipe grande é um pesadelo.
-
Porque algumas das melhores empresas americanas de trading (market makers, HFT, prop trading firms, top investment banks, bolsas, etc.) usam Java. Algumas também usam C++, mas tem muitas que são muito bem-sucedidas usando Java.
-
Porque Java não é necessariamente mais lenta do que C++. JIT muitas vezes é melhor que AOT, mas claro que isso vai dependener do critical path, do tipo de código, etc. Isso foi estudado aqui e aqui.
-
Já dá para compilar Java para códito nativo com GraalVM, mas como eu disse acima nem sempre AOT é melhor que JIT. Algumas optmizações agressivas (como inlining) só vão dar para fazer direito em tempo de execução.
-
É uma falácia que Java precisa usar GC. Fiz um video explicando isso aqui.
-
É uma falácia que Java não tem acesso direto a memória nativa, o
sun.misc.Unsafe
vem sendo usado desde os primórdios e sempre que a Oracle tenta tirá-lo a comunidade se revolta. O próprio CoralRing usasun.misc.Unsafe
para acessar memória nativa diretamente. -
Java tem Eclipse e IntelliJ.
-
Java é uma linguagem muito mais segura do que C++. C++ é o paraíso dos hackers e dos bugs silenciosos e destrutivos.
-
Java é bem mais fácil de debugar.
Agora se meter um cara de C++ ai ele tb vai produzir 10 razoes dele preferir C++ :)