最近興味あること
自分のメモも兼ねてプログラミング関連で最近興味のあること。
Reactive Programming
略してRP。次の解説が分かりやすい: やさしいFunctional reactive programming(概要編)。ウィキペディア英語版にも記事がある: http://en.wikipedia.org/wiki/Reactive_programming。
例えば次の擬似コード:
display seconds
と書くと、画面にエポック秒が表示されて、それが毎秒更新されていく。
display mouse.x
と書くと、画面にマウスのX軸上の位置が表示されて、それがマウスを動かす度に更新されていく。ここで
var x = seconds / 10 + mouse.x * 10 display x
みたいなこともできる。こうすると、マウスの動き(UI)と時間の変化によって、刻々とアウトプットが変化していくことになる。
もちろん、実用的にするためにはもっと複雑なコーディングが必要だが、ゲームとかが、より直感的にかけるのではないだろうか*1。うーん… イメージが伝わっているかな?
RPを実現する言語・環境・ライブラリにはいろいろあるみたいだけど、四つピックアップ:
- FrTime - Racket(Scheme)のライブラリ。デモが充実していて、それを見ているだけでワクワクする。
- Flapjax - Javascriptを基盤にした言語、環境。チュートリアル日本語訳がある。Javascriptの強力なGUIライブラリjQuery UIと連動させることができるなら(できそう)、すごく面白いことになると思う。
- Reactive - Haskellのライブラリ。つまり、関数型RP、略してFRP。
- Yampa - Haskellのライブラリ。ちょっと面倒くさそう。
とりあえず、FrTimeをちょっといじって見ようと思う。描画ライブラリが最初から統合されていて、それを使ったデモが提供されているのがうれしい。