【東京】JJUG ナイトセミナー 「Reactive Streams特集」 に参加してきました。 #jjug

はじめに

https://jjug.doorkeeper.jp/events/26547

@makingさんから、@okapiesさんと一緒に「Reactive Streams」について話してくれと頼まれましたので、参加してきました。

元々は、@cero_tさんが発端らしいです。

初めは、マイナーなネタならそんなに人集まらないだろうと思ってたのですが、キャンセル待ちが100人超えするくらいまで期待されてて正直びっくりしました。

当日のアンケートシステム、とても良かったので次回以降改善されるのを期待してます。

資料

@okapiesさんの資料は、こちらです。

私の資料は、こちらです。

http://grimrose.github.io/jjug-2015-reactive-streams/

利用したサンプルコードは、こちらです。

https://github.com/grimrose/jjug-2015-reactive-streams

元々は、Vert.x3でやろうと思ってましたが、ReactorRxJavaでと言われたので、使ったことがあるRxJavaを選びました。

確かに、当日のアンケートを見るとVert.x3Ratpackの認知度が低すぎて、RxJavaを選択しておいてよかったと思いました。

ドキュメントの多さは、やはりRxJavaに分があるのですが、Reactorもかなり充実しています。

個人的には、MongoDB Reactive Streams Java Driverがチュートリアルとして、充実してると感じました。

初めてJavaでAkkaを使ってみたのですが、いろいろツライ印象しか受けませんでした。

あれなら、素直にScalaで使ったほうが分かりやすいと思います。

おわりに

Reactive Streamsについては、それぞれのRuntimeの世界を繋ぐ為の仕様という認識が一番分かりやすいと思います。

実際の泥臭い部分は、Runtimeが頑張ってくれますが、何をやっているのか、どうやって実現しているのかを知っておくのは大切です。

どのRuntimeもReactive Streams向けに変換するライブラリがありますので、そのソースコードを読むのも勉強になると思います。

JDK9にどこまで採用されるか分かりませんが、データフロー制御についての共通インターフェースが採用されると、java.util.concurrentと併せて、非同期処理をもっと使いやすくなると思います。

JVMでデータフロー制御でお困りの方は、使ってみてはいかがでしょうか。

JJUGのスタッフ、参加者の皆様、@okapiesさん、ありがとうございました。