Reactive Programming in JavaScript - Frontrend Final Conference 資料

Reactive Programming

Reactive Programming in JavaScript ( 今回のスライド: HTML版 )

このスライド自体が Bacon.js で書かれた ahomu/Talkie で作られています。Rx系のライブラリに興味を持たれた方は、ぜひコードのほうもご覧いただければ。

アジェンダ

  • What is Reactive Programming ?
  • Reactive in Frontend JavaScript
  • FRP with Reactive Extensions

Reactive Programming について紹介しました。今回も懲りずに新ネタでしゃべった次第。Reactive も Functional も若干こわいひとたちが生息しているイメージ(個人の感想です)があるので、遅延評価で飛んでくる斧だけがこわい :P

ノイズ避け

率直な感想として、RP/FRP を学ぼうとすると情報的なノイズが多く、検索結果を総合して自分の中で知識を体系化するのには非常に高いコストがかかります。その点、まずは気にしなくて良いところはスルーできるように、興味をもってくれた方が後から学習するときの助けになるように意識しました。

非同期データストリームという概念

一番説明が難しかったところです。Better Promise または Async Array であり、既存の JS のモデルと比較した この図 は、モデル理解の取っかかりとして秀逸でした。(セッション中でも拝借しています)

  1. GUI プログラミングにおける非同期処理の複雑性と、RP の必要性
  2. 同期/非同期を問わず、全てを時間軸に沿って値が流れるリストに落とし込む
  3. リストとみなすことで関数型のイディオムを活かすことができる

1度理解してしまえば、興味深いモデルだなぁと思います。

Bacon.js 推し

Rx の Hot/Cold Observable が取っかかり悪く感じるのと、Bacon.Bus という役割が自明なオブジェクトの存在は大きいと思いました。React や Backbone に組み込むにも違和感なく扱えるし、モジュール化もしやすい。

今回は Reactive Extensions に敬意を表して、まずは基本ということで RxJS を紹介しました。とはいえ Bacon.js, Kefir.js の辺りであれば Observable 周りの I/F は酷似しているので、基本的な概念はそのままに使い始められます。

そういえば本編中に「Reactive Extensions的なもの、随分前からあるのに流行ってない」的な物言いをしてしまいましたが、本家 Rx からすれば流行るも何もなく普通に使われているライブラリかと思います。あくまで近代 JavaScript 界隈の文脈のつもりで言っていたのでごめんなさい。。(;˘ω˘)

釈明

えっと...

デモ、ReactとES6知らないとついていけないと思う。 #frontrendjs

— Kuu MIYAZAKI (@miyazaqui) February 21, 2015

何も言わずにArrow Function #frontrendJS

— じまぐ (@nakajmg) February 21, 2015

...すまんかった。

セッション自体は、Reactive なにそれおいしいの?ってカンジだったであろう、弊社の若い衆にも一定の理解が得られたようなのでちょっと安心してます。

エゴサ

気持ちを高めている

Reactive Programming in JavaScript

これも神資料

2015/02/22 10:28
Reactive Programming in JavaScript

種類が色々あって分かりづらいリアクティブプログラミング界隈が綺麗に整理されている。これはいい資料だ

2015/02/22 11:25

どうでもいいけど # の有無で、はてブ分散してる...(´ω`) canonical ??

完全にリアクティブちからがたまるわかりやすい講演だった #frontrendJS

— Kuniwak@Lint freak (@orga_chem) February 21, 2015

#frontrendjs 正直わからないところも多かったが全体としては非常にわかりやすかった

— sys9kdr (@sys9kdr) February 21, 2015

わかりやすくてめっちゃ面白かった #frontrendJS

— Genki @ 就活戦士 (@GenkiSugimotoJP) February 21, 2015

おれ、次もがんばるよ(´;ω;`)

Frontrend おつかれさまでした

上京以来、Frontrend に混ぜていただいて数々のセッションでしゃべらせていただきましたが、毎回テーマを喋るために勉強をし続けるため、自分にとっても良い学びの機会でした。

今回の FFC (Frontrend Final Conference デスッテ!) で Frontrend というブランドの活動に一旦の区切りがつけられましたが、これからも研鑽して参りたいと思います ( ˘ω˘) 拝

参考URL

最後になりますが分類しんどいので、雑に全部だします。今回は削ったけど、ほんとはCSP的な文脈も入れたかった−。

大変どうでもいいのですが、Frontrend中に E5 で5連続大破撤退しました。つらい。