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

10
新しい並行計算ライブラリ js-cspのご紹介 niryuu<[email protected] > Georepublic Japan LLC. 自己紹介:最近は専らクライアントサイドで 地理空間から3Dの実世界まで 素材:いらすとや

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

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

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

niryuu<[email protected]>Georepublic Japan LLC.

自己紹介:最近は専らクライアントサイドで地理空間から3Dの実世界まで

素材:いらすとや

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

非同期プログラミングをつないでいく問題

• 悪名高いコールバック地獄

• Promise, Generatorベースのものもそこそこ育ってきた

• が,次は:検証の問題

• 並行計算を追う困難

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

コールバック関数

yieldPromise

EventEmitter世

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

非同期処理の検証の問題• 新しい書き方は出てきたが,ちゃんと動いているかの検証はどんどん難しくなっている

• console.log, throw

• コールバック地獄はある意味わかりやすい!山を登れば山頂がある

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

山は厳しい

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

非同期処理の検証の問題• 新しい書き方は出てきたが,検証はどんどん難しくなっている

• console.log, throw

• コールバック地獄はある意味わかりやすい!山を登れば山頂がある

• 通常の手続き型の枠内で記述している

• Promise もある意味システム化している

• co などもできるだけ手続きっぽく書ける

• →本来非同期に向いた計算モデルが必要

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

そこでCSP• Communicating Sequential Processes

• Wikipedia:「プロセス代数またはプロセス計算と呼ばれる並行性に関する数学的理論の一種である」

• 要はλ計算の並行計算版

• よりわかりにくいわ!

• 並行計算=データの流れのデザイン

• golang, clojure で一気に大流行した

• ubolonton氏によるjs-csp

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

js-csp

• golang の人が解説すれば一瞬でわかるので,いいブログ記事のサンプルソースをガンガン見せます

• chan を見ればわかる明快さ

• Reactive Programming との親和性