新しい並行計算ライブラリ
js-cspのご紹介
niryuu<niryuu@gmail.com>
Georepublic Japan LLC.
自己紹介:最近は専らクライアントサイドで
地理空間から3Dの実世界まで
素材:いらすとや
非同期プログラミングを
つないでいく問題
• 悪名高いコールバック地獄
• Promise, Generatorベースのものもそこ
そこ育ってきた
• が,次は:検証の問題
• 並行計算を追う困難
コールバック関数
yield
Promise
EventEmitter
世
非同期処理の検証の問題
• 新しい書き方は出てきたが,ちゃんと
動いているかの検証はどんどん難しく
なっている
• console.log, throw
• コールバック地獄はある意味わかりや
すい!山を登れば山頂がある
山は厳しい
非同期処理の検証の問題
• 新しい書き方は出てきたが,検証はどんどん難しくなっている
• console.log, throw
• コールバック地獄はある意味わかりやすい!山を登れば山頂が
ある
• 通常の手続き型の枠内で記述している
• Promise もある意味システム化している
• co などもできるだけ手続きっぽく書ける
• →本来非同期に向いた計算モデルが必要
そこでCSP
• Communicating Sequential Processes
• Wikipedia:「プロセス代数またはプロセス計算と呼ばれる並
行性に関する数学的理論の一種である」
• 要はλ計算の並行計算版
• よりわかりにくいわ!
• 並行計算=データの流れのデザイン
• golang, clojure で一気に大流行した
• ubolonton氏によるjs-csp
js-csp
• golang の人が解説すれば一瞬でわかる
ので,いいブログ記事のサンプルソース
をガンガン見せます
• chan を見ればわかる明快さ
• Reactive Programming との親和性
参考文献
• js-csp
• https://github.com/ubolonton/js-csp
• Taming the Asynchronous Beast with CSP
Channels in JavaScript
• http://jlongster.com/Taming-the-
Asynchronous-Beast-with-CSP-in-JavaScript

新しい並行計算ライブラリ js-csp のご紹介