コミュニティの受容の印象いろいろ:Rx編

2015年を通して、Rxに関して色々調べてみた結果、(国内の)コミュニティごとに受容の温度感がだいぶ違ったので、ちょっとおもしろかった。

.NET(C#)界隈

2009年くらいからRxに付き合ってるだけあって、なんというか熱狂期を過ぎた感じ。冷静に受け止めて粛々と使う人は使うという印象。LINQがあり、LINQ to Eventsという売り文句でコミュニティに向けて発信されたのもあってか、リアクティブとかFRPとか、そういう単語で盛大に踊った痕跡もあんまり残ってない。Channel9とかinfoQとかにアップロードされてるBart de Smetの解説動画とかも、思想の源流としてリアクティブの話はしつつも、IEnumerableとのdualityを話す。

Android界隈

リアクティブという言葉のマジックを第一印象として大切にしつつも、Promise/Future相当の統合兵器として、粛々と実践利用している印象。cookpadが使っているというのが国内における普及の一押しのようには感じている。QiitaにはArrayの拡張メソッドの代わりに使おうと試みる記事も上がっているものの、その用途の道具じゃないので、その一派は割りと早期に廃れた模様。2014年のJavaScriptコミュニティがReactで盛り上がっている一方でAndroid界隈はRxJavaで盛り上がっていた、という感じだろうか。

Java界隈

Reactive Streamsからの流れで、Java/Scala関係なくサーバーサイドアーキテクチャでpush型サービスモデルを組むための道具の一つとして受け止められているように見受けられる。日本のJavaコミュニティといえばScalaも混ざっているので、当然ScalaのFunctionalでMonadicな側面と合わせて論じられていたりもする、という印象を受ける。

JavaScript界隈

たぶんいちばん反応が若い、というか初々しい。2014~15年と、コミュニティのメインストリームはReact~ES6と来ているので、Rx一派は未だ傍流なのと(消化が進んでいないとも言う)、Cycle.jsとその作者であるAndré Staltzが大のFunctional好きなのもあってか、「リアクティブ」「Functional Reactive Programming」といった単語が魔法の言葉として長らく扱われている。その魔法のベールにこそ、Reactの次のコミュニティマウンティングとメイクマネーチャンスの鍵が眠っているかのようにも扱われているが、その神秘のベールがコミュニティの合意として明かされる日までは、もう少しかかりそうな感じ。

番外: Netflix界隈

2013年1月のReactive Programming at Netflix以来、会社のカラーとしてReactiveを押している。が、あくまでも枕詞として会社のカラーを押すためのキャッチーな単語を選んだという感じで、彼らのtechconf動画を見ると、RxJavaでpush型の世界をどうハンドリングするかの話やobserver patternやIterableに対する双対としてのRxの話が多く、地に足の着いた話しか出てこない。