プログラミング言語の特徴を、実行速度と簡潔さで見る
プログラミング言語にはさまざまな種類、CやJavaやPerlなど、が存在します。理想的なプログラミング言語の定義は条件やプログラマーの好みによってさまざまだとは思いますが、やはり実行速度が速いこと、できれば簡潔に記述できた方がよい、という条件に同意する方は多いのではないでしょうか。
さまざまなプログラミング言語のベンチマークを実行し、その結果を報告しているWebサイト「The Computer Language Benchmarks Game」を紹介しているのが、ブログ「Radium Software」の記事「プログラミング言語の特徴を視覚的に比較する」です。
「The Computer Language Benchmarks Game」では、ベンチマークの結果とそのコードの関係をグラフにした「interpret scatter plot shapes」というWebページが公開されています。そこからグラフをいくつか引用して見てみましょう。グラフはインテルの1コアCPUのUbuntu OS上でいくつかのベンチマークを実行し、その実行時間とコードの長さを表しています。
上のグラフはRubyの例です。グラフの縦軸が実行にかかる時間を示しており、横軸が記述の簡潔さを表しています。このグラフからは、簡潔に記述できるが実行速度は遅い、という傾向が読み取れます。
スクリプト系の言語を見てみましょう。どれも簡潔に記述できるが実行速度はまあまあ、といった傾向をグラフから見いだすことができそうです。特にRubyとPerlの簡潔性がはっきりと表現されていますね。
一方でC、Java、Fortranあたりは実行速度の高さが表れています。スクリプト言語と比べると記述は少し長くなる傾向にあることも分かります。スクリプト言語と比べれば命令群がプリミティブなのでしょうね。
実行速度が速く、かつ簡潔に記述できるという特徴を兼ね備えた言語としては、下の3つが最右翼のようです。関数型プログラミング言語が並んだのはベンチマークなどとの相性による偶然でしょうか、あるいは必然なのでしょうか。
いずれにせよ、実行速度と簡潔さ、という2つの物差しで、プログラミング言語の特徴が視覚的に浮かび上がる点は非常に興味深いですね。