Node.jsはソフトウェアの癌になる。scratch2011-10-02Node.jsはソフトウェアの癌になる。Dziubaから衝撃的な記事が出たので、読んでしまいました。Cancer要点を訳すと下記のような感じです。Node.jsがスケーラブルであるというのは嘘。Nodeの運用が難しい。JavaScriptってWebアプリのロジックを書くのに向いてない。Node.jsがスケーラブルであるというのは嘘であるについてNodeのサイトには下記のように記載されています。systems.Node内のほとんどのfunctionはI/Oを直接実行しないため、プロセスはブロックされない。ブロックがないため、エキスパートなプログラマーではない人たちでも高速なシステムを構築することが可能だ。これに対して、上記の記事では、fibonacci関数を作ってその実測値が遅いことを問題視しています。}この関数をNodeからfibonacci(40)みたいにして呼び出すと、かなり時間がかかってしまうとのことです。これはスレッドがない、イベントモデルが原因で、ブロックされないとはいえ、関数からすべての値が戻るまで結局プロセスは待ち状態になってしまいます。ブロックされてしまうとCPU使用率が上がるので、結果として効率が落ちてしまい、遅くなります。記事によれば、これはエキスパートなプログラマーではない人がNodeのシステムを組んでしまうと恐ろしい結果を招く危険性をはらんでいるとのことです。スケーラブルなシステムを構築するためには結局エキスパートが必要になってしまうということですね。Nodeの運用についてこちらはより単純。今管理者としてNodeを運用する知見を持っている人が少ないことが問題視されています。知見がない場合、開発者が管理者も兼務する事になり、ロードバランシングやプロキシなどの現代のサーバーが持っているはずの設定を開発者がする事になります。CPUを多用するようなコードに目を光らせることになるため、非常に運用が難しくなるとのことです。JavaScriptってロジックを書くのに向いてないについてよりより単純。下のようなコードを書きたくない。確かにNodeはCPUが優先されるようなシステムには向かないかもしれませんが、それはどの技術にも存在する向き不向きといった問題なのかと思います。大規模システムを構築する際にはケアしないといけない所が従来とは異なるというだけかなぁと思います。JavaScriptの問題についてはGoogleも問題視していますね。Goodiesこういうのを読むとサーバーサイドJavaScript自身、まだ過渡期の技術なので、さらなる進化が求められる気がします。01:19Node.jsはソフトウェアの癌になる。