スプレッドシート

関数プログラミングから何か感じたいと、"On LISP"を眺めてみましたが、ありがたい説法を聞いているよう。Erlangは使うことがあるかどうかわかりませんが、感じるものがあります。Smalltalkを触っていると、どうせならメッセージがリモートプロシージャで自然な並列性が導入できたらなんて妄想しました。実際にやっていた人もいる。でも状態/副作用が邪魔するのですね。関数⇒並列という思想のErlangはかっこいい。
でも、Erlang使う人は、Webアプリケーションのような、当たった時にサービスの規模に合わせてスケールさせないといけない人たち。自分にとって、関数プログラミングってなんだろうと思ったら身近にあったじゃないですか。スプレッドシート。あれはシートが関数プログラムかつ計算結果。セルの変更=プログラムの変更&実行。ああ知らずに関数プログラミングしていたなんて。
スプレッドシートは、変数名がA1なんておおよそ可読性のないプログラムなので、Erlang相当の言語+MVCのVCモデルを作ったら、大勢の人が使ってくれるプログラミング環境になると直感しました。
ひさしぶりにプログラムがしたくなりました。
追記:思いつくのが5年遅かったか。
"A User-Centred Approach to Functions in Excel"
でもここ5年のソフトウエア業界やオープンソースの変化は大きい。当時とは違うことができるはず。
更に追記:
スプレッドシート関数プログラミングの関係を考えていたら、やっぱり違うとわかりました。スプレッドシートは、入力+組み合わせ回路+出力。これを関数型と呼んではチャーチさんに怒られる。
でも、スプレッドシートのプログラム表現力に可能性を感じます。可読性を高めようとすると、プログラムのブラウズは、エディタ任せのインデントからシート型表示に変わって行きそう。