>>ちんこ
Javaの限界を理解すると、おそらくC++の必要性も理解できるよ。
Javaではいくら最適化しても間に合わないような、
リアルタイム性が必要な処理を、Javaで書いてみるといい。

私は昔、Javaがあるのになぜあんな醜いものをいまだに使うんだ、
と憤りを感じ、何でもJavaでやってやろうと思ったことがあった。
そして、まだJava製OSSが存在しなかったので、
MPEG2のデコーダーを途中まで、Javaで書いたんだよね。

そして、コンテナから映像を取り出して、それを複合化して、
BMP画像として書きだすところまで作った。
(書き出すだけならJavaのAPIで簡単にできるから)
しかし結局、どう頑張ってコードレベルで最適化しても、
論文を読んで速いというアルゴリズムを使うようにしても、
Cとアセンブラで書かれたコードのような速度は出なかったんだ。

そして「もっと速くするには言語自体に〜する機能が欲しい」と
考えるうち、C++がそういう言語じゃないか、と気付いた。
あれは少しでも速度を犠牲にするものは全て拒否した結果だと思う。

今考えると傲慢で恥ずかしい話なんだけど、いい勉強になったよ。

例えばシミュレーションの分野では、ハードウェアが速くなれば
精度を上げるだけなので、いつまで経っても「もう充分」にはならない。
(これはゲームなども一緒)
MPEGも、ハードウェアが速くなるたびに圧縮率を上げることで
慢性的に性能不足の状態が続いている。
こういう分野には、ああいう言語が必要なんじゃないかな?