がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

Node.jsについて

まだおおむねメモ書き程度なので、メモ程度に。


node.js とは何か
http://d.hatena.ne.jp/badatmath/20101020/1287587240


node.js とは何か (2)
http://d.hatena.ne.jp/badatmath/20101022/1287701281


と、おおむねこれに対立すると思しきこれ。


訳:Node.jsは癌だ
http://blog.uu59.org/2011-10-04-node-js-is-cancer.html


…うん、過去にも「シングルプロセスかつシングルスレッドでイベントループ」なhttpdの実装って、見た記憶がある(というか、直接ではないにしても同じ会社さんで業務として扱っていたし、ちょっとだけコードを書く都合上、説明を受けたりもしたなぁ)。
結局のところ「大量アクセスをさばきたい」に起因して「より効率的なやり方はなに?」っていうあたりに進んで、ってまでは普通に理解できる。
で、Node.jsの人たちは「シングルスレッドでイベントループ」にした上で、さらに明らかにボトルネックになる「ディスクI/Oを強制的に非同期にする」ことで、全体的に「暇こいてるところ」をつぶして、マシンの性能をぎりぎりまで持ち上げよう、って考えたんじゃないかな。


で…うんまぁ理屈はわかる。
で、おいちゃんが業務でhttpdにかかわった時に考えたこととほぼまったくおんなじことを、反証のほうに書いてある。
イベントループは、端的に「CPU負荷が高い悪い子(処理)がいると瞬時に全員巻き込まれる」。
そもそもマルチプロセスがマルチプロセスたる所以、あるいは「わざわざ、相互干渉が難しいプロセス空間なるものを作り出した理由」に、少し思いをはせてみて欲しい。


別にNode.jsを否定はしないし、使いどころと設計と実装を「間違えなければ」、アイデアとしては結構面白いと思う。
ただ…どっちかっていうと「間違えちゃう人」の数の多さに思いが行ってしまうときに、実務で業務で「使いたいか?」と聞かれると…メンバー見るまでは躊躇するんじゃないかなぁ、と。


うまいこと使えれば面白そうなんだけどねぇ。
どうなっていくんだろ?