MINILIGHT, a minimal global illumination renderer

by syoyo

MINILIGHT, a minimal global illumination renderer


http://www.hxa7241.org/minilight/minilight.html

C++ (950 lines)
OCaml (462 lines)
Ruby (499 lines)
Lua (566 lines)
Adobe Flex/ActionScript3 (642 equivalent lines (862 including extra UI))

AS でパストレかよ!というのもありますが、
もうひとつ注目したのは各言語のコード行数。

関数型言語である OCaml が一番コード行数が少ないですね。
そして実行速度は C++ > OCaml > スクリプト言語の順番とのこと。
手続き型に比べて関数型はコード量が少なくて済んで、かつ速度もそこそこ、
という利点が示されたよい例だと思います。

もっとグラフィックス野郎にも関数型言語が普及してもよいのではないかと思います。
もちろん、関数型言語でも得手不得手はありますから、
「関数型が適していそうな場所なのに、C/C++ が使われている場所があるなら、
そこは関数型に置き換えるのもいいんじゃない?」という意味です。

関数型言語の特徴は、「OCaml のすすめ」[1] に集約されています。
Ocaml, Haskell と関数型言語を一通り触ってみて、ここに書いてあることは
まったくもって当てはまるなぁと感じます。

[1] OCaml プログラミング入門
http://www.i.kyushu-u.ac.jp/~bannai/ocaml-intro/

Advertisements