関数型ゲームプログラミング

Programming in the 21st Century - Purely Functional Retrogames

James Hague 氏は 80 年代からのキャリアを持つベテランのゲームプログラマー。昔はフルアセンブリでゲームを組んでいた氏も,今はひょんなことから Erlang でプログラミングしていたりする。

そんな氏が今回挑むのは,「純粋関数型ゲーム」。破壊的更新 (destructive update) を一切使わずにパックマンを作ってみよう,ということなのだけれど,命令型 (imperative) プログラミングに慣れた人にしてみれば,まるでパズルの世界になってしまっている。

一般的なプログラマーが,仕様書に目を通したとき,頭の中に浮かんでくるのは,ステートのかたまりと命令の連なりなんじゃないかな。それは,プログラマーの頭が命令型プログラミングに慣れてしまっているから? それとも,命令型のパラダイムこそが「普通のソフトウェア」を組むのに適しているから?

Admitting that Functional Programming Can Be Awkward とそのフォローアップも面白い。結局,いつの世でも必要とされるのはマルチパラダイム言語なんだと思うよ。