まあ、これは古い議論です。ほとんどすべてが Emacs および VI として普及しています (ただし、それほど古いものではないことは間違いありません)。多くの C++ 開発者が、ほとんどのパフォーマンス ベンチマーク (特に Java が c++__ と同じくらい高速であることに言及) が歪んでいる理由について多くの議論を提供しているのを見てきましたが、正直なところ、彼らには一理あります。
Java が C++ と同じくらい高速である理由を詳しく説明するのに十分な知識や時間はありませんが、次の理由が考えられます...
1- 2 人の非常に有能な開発者に、現実世界の問題 (同じ問題) に対して Java と C++ でコードを書くように依頼すると、Java が C++ よりも高速に実行されることに驚かれることでしょう。C++ は、適切に作成された場合、Java が使用するメモリの一部を使用します。(Java オブジェクトは少し肥大化しています)。
2- Java は本質的により単純な言語であることを意図しており、次善のコードを書くのが難しいことを確認するために書かれています。メモリ管理を抽象化し、低レベルの最適化を処理することにより、Java では C++ よりも優れたコードを簡単に記述できます。(これが最も重要なことだと思います.... Javaで悪いコードを書くのは難しいです)。反対に、優れたC++開発者は、Javaの自動GCよりもはるかに優れたメモリ管理を処理できます。(Javaはすべてをヒープに保存するため、より多くのメモリを使用します...)
3- Java コンパイラは一貫して改善されており、ホットスポットのようなアイデアはマーケティング用語よりも優れていることが証明されています。(JIT が導入されたとき、それは単なるマーケティング用語でした.. 私によると.. :))
4-人間工学に基づいて、または基礎となるオペレーティングシステムのパラメーターに基づいて設定を調整すると、Java ハンドルのバリエーションが改善されます。そのため、一部の環境では、Java が C++ と同等のパフォーマンスを発揮することをイメージするのは難しくありません。
5- Java 開発者向けに高レベルの並行性と並列性 API を開放することも理由の 1 つです。Java 同時実行パッケージは、今日のマルチ プロセッサ環境を活用できる高性能コードを作成するための最も簡単な方法であることはほぼ間違いありません。
6- ハードウェアがますます安価になるにつれて、開発者の能力がより大きな要因になってきました。そのため、世の中に出回っている多くの C++ コードはおそらく Java よりも遅いと思います。