2010-12-26から1日間の記事一覧

最後に自分の話

まとまりのない話を最後まで読んでいただきどうもありがとうございます。最後に自分が取り組んでいることの話を少し。 自分が取り組んでいるのはデータベースとリアクティブプログラミングの融合です。リアクティブプログラミングはわりとクライアントサイド…

今後の課題とか

リアクティブプログラミングは関数型プログラミングなどに比べてまだまだマイナーなパラダイムですが、上に述べたようにすでにいくつものライブラリでサポートされていて、ブレイクするのも時間の問題と言いたいところですが、関数型プログラミングだってキ…

ライブラリとか

リアクティブプログラミングと関数型プログラミングやオブジェクト指向の比較なぞをやりましたが、実際のリアクティブプログラミングの多くは、 関数型プログラミングやオブジェクト指向と組み合わせて使われることの方が多いです。 とくに関数型との組み合…

分散処理との関係

DAG 分散処理で使われる計算モデルのひとつに、DAG(directed-acyclic graph:有向非巡回グラフ) があります。DAGはその名のとおり、向きがあって循環のないグラフで、各ノードで計算が行われ、 各エッジが、その方向へのデータフローとなります。 このDAGは…

イベントの種類

リアクティブプログラミングでは外部とのやりとりを、外部の「何か」と対応付けられた振る舞いを通じて行います。 対応付けたい内容に応じて、いくつかの種類の振る舞いを使い分けることが必要になります。 状態へのマッピング もっとも基本的な振る舞いは、…

計算の工夫

依存グラフとキャッシュの管理 一番基本的な工夫は、状態間の依存関係を管理して、ある状態が変化したとき、その状態に依存する状態だけについて 再計算を行うことです。 a = 1 b = 2 c = 3 d = a + b e = d * c の依存グラフはこんなかんじになります。 た…

関数型と比較しつつ

関数型プログラミングにおける式は、値と値の関係を表します。 一方リアクティブプログラミングでは、式は、振る舞いと振る舞いの関係を表します。 純粋な関数型プログラミングでは、参照透明であること、つまり式を値で置き換えてもプログラムの意味が変わ…

リアクティブプログラミングとは

まず次のような定義を行います。 a = 1 b = a * 3 そしてaに2を代入してみます。 a = 2そしてbを出力してみましょう。 通常の命令型言語であれば、この結果は、 b -> 3 となります。 しかし、リアクティブプログラミングでは、 b -> 6 となります。b = a * 3…

ところで、なぜ重要なのか

Why Reactive Programming Matters. えーと、リアクティブプログラミングがなぜ重要なのか、というのが本題でした。なので、実はここからがメインです。 なぜ重要だと思うのか書かなければいけません。その理由について、モジュール性の向上と状態管理の自動…

なぜリアクティブプログラミングは重要か。

リアクティブプログラミングは、「時間とともに変化する値」=「振る舞い」同士の関係性を記述することでプログラミングを行うパラダイムです。 GUIなどのようにインタラクティブなシステムや、シミュレーションやアニメーションのようにダイナミックに状態…