Programming Web

CESを見学にLas Vegasに行ってきました。
行きの飛行機の中で、"The Social Network"を見たこともあってか、たくさんの刺激をもらい、あれこれ思いつきました。
(成功を狭義で考える優れた人たちの多くは、やり遂げてこそという話をされますが、私にとっては思いつくこと自体がかけがえのない幸せです。)
以前に、みんなで一つのSmalltalkイメージにコードを追加していって、得体の知れない巨大なプログラムはできないものかと思ったことがあります。オープンソースのコードをFileInしていけばひとりでできるでしょ?と言われたらそれまでですが、私のイメージはもっとウェブ的なものです。でも、CPUはどこのを使うとか、ステートはどうするの?など言語以外の要素が多く、別のプログラミングになってしまう感じがします。
この妄想はかなり以前のもので忘れていたのですが、Social Network見て思い出しました。Haskellだったらイメージに近くできるじゃないかと。

  • ステートがないので、どこのCPU使うかユーザープログラマーは気にする必要がない。
  • ネームスペースなんて考えなくても、関数にURLを割り当てるコンベンションだけ決めておけば良い。
  • 関数を公開しているサーバーは、気が向いた時には演算結果を返し、忙しければコード自体を返す。つまり、コードはサーバーサイドスクリプトにもクライアントサイドスクリプトにもなる。他のサーバーにコードごとリダイレクトすることもできる。

こんなことができそうなフレームワークを用意すれば、必要なライブラリ一式をダウンロードすることなく、ちょこちょこっとスクリプト書くだけで勝手に分散処理してくれるわけのわからないプログラムを動かすことができそう。
それで何が面白い?と問われると答えに窮しますが、ウェブやブログに貼られているコードを見ると、昆虫の標本のようでかわいそうなんですよね。もっと飛んでいたかったに違いないと。
まあそういう言い訳に逃げず、具体的に面白い応用を探してみよう。