スクリプト言語の息の根を止めるのは案外 SSD かもな

大変たいへん興味深い記事。全プログラマーにとって。

HDDの代わりにSSDを利用したら、リレーショナルデータベースの性能はどれだけ向上するのでしょうか? オラクルと富士通が共同検証を行い、その結果をホワイトペーパーとして先週発表しました
...(snip)...
HDDは200スレッドで性能が頭打ちなのに対し、SSDは200スレッドから300スレッドになってもまだ性能は上昇。ただし、300スレッド時にはCPU利用率が100%に近づいており、先にCPU性能の方がボトルネックとなってしまったようです。

HDDをSSDにしたらデータベースはどれだけ速くなるか? オラクルと富士通が実験 - Publickey

動的なスクリプト言語 (RubyPython など) と静的なコンパイル型言語 (C++Java など) では、だいたい 5 倍から 10 倍ぐらいの速度差がある。それでもスクリプト言語が実用的に使われたのは、言語の速度差がそのままアプリケーションの速度差にはならないから。つまりスクリプト言語で作られたアプリケーションが、必ずしも C++Java 製のアプリケーションより 5 倍も遅いというわけではない。

言語の速度差がそのままアプリケーションの速度差にならない理由は、CPU より I/O (ネットワークやディスクアクセス) がボトルネックになるから、というのはよく言われるし、実際そうである。少なくとも今までは。

しかし SSD が主流になり、ディスクアクセスや DB がボトルネックにならない (あるいはなったとしてもペナルティが少ない) ような時代になったら、言語の速度差がそのままアプリケーションの動作速度になる可能性がある*1。そうなると、プログラミング言語の速度が今よりずっと重要になるだろうし、動作速度の遅いスクリプト言語は人気が暴落するかもしれないね。まあ暴落まではいかなくとも、人気が下がることは大いにありうる。

スクリプト言語屋さんは今からそのときに備えるべきだろう (そのときが来てからじゃ手遅れ)。とりあえずできることは:


つーかね、21 世紀も 10 年目に突入したんだし、もうそろそろ「スクリプト言語並みに使いやすい 静的な言語」が主流になって欲しいよね。もともと速度的に不利なスクリプト言語を一生懸命高速化するよりも、そっちのほうがあるべき姿だと思うんだけど、賛同者はおらず。なんで OCaml は今いち人気がでないんだろう。

*1:まあアーキテクチャやキャッシュ技術が最重要なのは変わらないだろうけど。