やったほうが、効率がいい場合が多いということになります。なんかもこれを実現するために使えるでしょう。やる必要は無いと思います。ここは完全に、通信量やパフォーマンスなどで使い分ける必要があると思います。由来でいくつかあるらしいです。あたりがそうみたいだけど、あまり詳しくないのでわからない。引用するとWikidediaから抜粋するとFRPにおいて重要なポイントは次の通りです。わかりやすい説明があります。多いですが、まるっと引用させて頂きます。behaviorの一番簡単な例は時間です。ある値tが時間を表すbehaviorだとすると、値tは時とともに連続的に変化します。tを出力するとある時点の時刻が(サンプリングされて)表示されますが、内部的には連続的に変化しています。変化する株価など、behaviorは実にありふれています。一方で、eventとは時間と値が組になったストリームです。ユーザからのキー入力を表すkeyという値を考えます。c)という値のストリームを表しています。他にもユーザがマウスをクリックするごとに発生するeventや、ボンネットの温度が5度あがるごとに発生するevent、ブランコの速度が0になるたびに発生するevent、あるいは株式市場で取引の開始・終了を知らせるeventなど、eventもまたありふれています。概念が、まさしくこれらを抽象化していると見ることができます。ついては、かつて以下に書きましたのでご参照下さい。「時間」と「値」を「データの流れ」として抽象化するためのインタフェース。いうような位置づけになります。連続して変化するデータを、イベントと合わせて扱うことができます。スタイルのアプリケーション開発と非常に相性がよさそうです。反映するといった感じ。ServerReadableStream.pipe(ClientWritableStream);です。