「非同期プログラミング養成ギブスとしてのnode.js」について

東京Node学園 11時間目 でLTをさせていただきました。

node.jsといえば非同期プログラミングの扱いが大変だという印象がありますが、それにいろいろ立ち向かった結果、ちゃんとパーツに分けたり例外処理を書こう という当たり前の結論になりました。スライドは

になります。

正直、まだプログラミング言語については初心者のため、Promiseやgeneratorなどについて理解が浅かった部分はあり、それが原因で詰まったことが多かったです。しかし、node.jsはちゃんと書けばちゃんと応えてくれる言語だという印象です。LTが終わった後に何人かと話をしたのですが、現在のnode.jsでは様々なパラダイムが次々と出てきています。その中で、保守性の問題がどうしても出てくるのではないかという懸念があります。例えばkoaで気持よく書いたとしても、さらに良いパラダイムが出てきてもおかしくはありません。しかし、それに負けないでコードを維持していくための武器が、当たり前のことをちゃんとやることだと思います。

また、非同期プログラミングについていろいろ調べてみました。

プログラミング言語寄りだと、様々な言語での非同期プログラミングパターンを紹介している

The Pragmatic Bookshelf | Seven Concurrency Models in Seven Weeks

が参考になります。

・計算論、プログラム意味論からの歴史を追うなら、Wikipedia英語版の

Actor model and process calculi history - Wikipedia, the free encyclopedia

が参考になります。

・ガチで言語を作るなどをやっていく気持ちがあるなら、

Communicating and Mobile Systems: The Pi Calculus

Communicating and Mobile Systems: The Pi Calculus

 

 でπ-Calculusをやる必要があるようです。これはラムダ計算の拡張なので、こちらの知識も必須となると思います。

論理と計算のしくみ

論理と計算のしくみ