View
2.021
Download
0
Category
Preview:
Citation preview
新しい並行計算ライブラリjs-cspのご紹介
niryuu<niryuu@gmail.com>Georepublic Japan LLC.
自己紹介:最近は専らクライアントサイドで地理空間から3Dの実世界まで
素材:いらすとや
非同期プログラミングをつないでいく問題
• 悪名高いコールバック地獄
• Promise, Generatorベースのものもそこそこ育ってきた
• が,次は:検証の問題
• 並行計算を追う困難
コールバック関数
yieldPromise
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
Recommended