JJUGのReactive Streams勉強会に行ってきました!

最近ちょこちょこ話題になっている「Reactive Streams」についての勉強会に行ってきました!
僕の事前知識は「『React.js』とか『RxJava』っつーのがあるらしい」という程度です。
実際に触ったことはない・・・(^^;
事前にちょっとネットで調べはしたんですが、Java標準のStream APIと何がどう違うんだろう?というのが分からず、そこらへんを重点的に聴きたいなーと思って臨みました!

Reactive Streams入門

前半は岡本さん(@okapies)の発表でした。speakerdeck.com
「Reactiveとは何か?」という概念的なお話でした。

Reactive Manifesto

http://www.reactivemanifesto.org/ja
岡本さんは「Twelve factor appみたいな位置付けのもの」とおっしゃっていました。

Reactive Streamsを使ってみよう

後半は吉田さん(@grimrose)の発表でした。
http://www.grimrose.org/jjug-2015-reactive-streams/#!index.md
実際にRxJavaを使ったReactive Programmingの例を解説されていました。
JavaScriptみたいなイベント駆動のようなイメージを感じました。
RxJava 2.0だとJava 8対応するということで、ラムダ式使ってもっと簡潔に書けるようになるのでしょうね。

Java 8のStream APIとの違いって?

質問タイムの際に質問させていただきました。
ご回答いただいた上での僕の理解では、
Stream API→単体マシン内での非同期も可能なコレクション操作
Reactive Streams→ネットワーク上に分散している可能性もあるし、単体マシン内の可能性もある。その辺りは意識しなくてもいいような抽象化がされている
という認識です。

後は、送り手側が一方的にデータを送りつけすぎて受け手側がオーバーフローしないように、互いに連携しながらデータのやり取りを行ったりするところが違いでしょうか。

うーむ、勉強せにゃならんことがいっぱいや…(^^;;
でもまあ、勉強すべきことがいっぱいあることを認識すること自体がまず大事かなと思うので、今日はそのための良い機会を頂けたのだと思います!

発表者の岡本さん・吉田さん、そしてJJUGの皆様、ありがとうございました!