ふぅ、久々に現場からの日記です。
ようやく昨日くらいから一段落つきました。
しばらく読んでなかったJava関連のニュースサイトをのぞいてみる。
Java Performance Tuning Newsletter no. 39
ここの記事は結構為になる。
もちろん原文は英語なんだけど、日本語化されてるのが良いね。
--- Java vs C++ ---
いくつか目にとまった記事がある。
まず、未だに続くJava vs C++の論争から。
もはや現在Javaでプログラムを書いている人間ならば承知の事実だろう。
パフォーマンスの為にC++を使うなんていう理由は
古い考えに縛られた頑固頭の屁理屈に過ぎないって事を。
--- 現実を見つめよ ---
もちろん、あらゆる処理を記述してみても
C++がJavaより速いのは誰もが理解している。
しかし、それが果たしてどれだけ意味のあることを考えたことがあるだろうか。
例えば、Javaで書いて10秒掛かった処理をC++で書いたとしよう。
JavaのロジックをそのままC++で書いた場合、おそらく処理時間は9.9秒以上は掛かるだろう。
なぜか。それは、処理時間の大半はDBへのアクセスに掛かっていたからだ。
純粋にJavaもしくはC++の処理に掛かった時間は0.1秒未満だった。
これは、多くのプロジェクトで実際に起こっている現象である。
現代において、言語の選択はパフォーマンスアップの要因にはならないのだ。
結局、C++で書いていようがJavaで書いていようが
パフォーマンスを向上させるにはDBのチューニングをしなければならない。
だったら、開発効率の良いJavaを使わない理由は全く無いだろう。
--- これが結論 ---
「このコードをより速くするには、どう書けばいいでしょうか?」
この質問に対する記事の結論はこうだった。
美しいコードを書きましょう。
そしてその美しいコードをプロファイリングして、
少しだけ格好悪く、そのかわりに高速になるようにしましょう。
多くのプログラマは、この回答を理解できない。
コードを美しく書くことなんて自己満足に過ぎないと思っている。
しかし、僕から言わせれば
高速化の為に汚いコードを書く人間の方がよっぽど自己満足に見えてしまう。
コードとは、保守・修正されるものだ。
美しいコードは、高速化の為の修正もし易い。
美しいという事は、作りがしっかりしているという事だ。
そして、幸いなことに現在のマシンは進化している。
高速化の為にギリギリまでコードを汚さなくとも、
きっと満足のいく処理速度が得られるはずだ。