Reactive Extensions
Overview
あるひとつのプログラミングの考え方を表す言葉として「プログラミングパラダイム」というものがある。
たとえば「オブジェクト指向プログラミング」はパラダイムのひとつで、他にもさまざまなパラダイムがある。
その中のひとつ「リアクティブプログラミング」というパラダイムをまとめるセクション。
Reactive Extensionとは
RPとは、時間とともに変化する値に対する操作を宣言的に記述していくプログラミングパラダイム。
時間とともに変化する値とは以下の通り。
- タイマー
- マウスカーソルやスクロールの位置
- HTTP経由で送られてくるデータ
これまでに説明した「いつ起こるかわからない処理」の全般を指す。
そして、これら時間とともに変化する値のひとまとまりを、ストリーム(stream)と呼んで扱う。
tip
JavaScriptにおいてストリームといえば、Node.jsにはfs.createReadStreamというものがある。
これはファイルサイズの大きいファイルを読み込む際に、データをチャンクという細かく分割した単位で徐々に読み込み、最終的にすべてのデータが揃うというAPI。
この徐々に読み込むという点は、まさに「時間とともに変化する値」
Node.js上で述べられるストリームは、ここにRxJSこそ登場していないが、同じ概念。
ストリームは流れや小川を意味する英単語であり、そのためしばしばストリームの解説では川に例えられることもある。