仕事で突然Node.jsを使えと言われた。
さらに、expressというフレームワークを使い、jQueryを使い、なんとかというライブラリを使ってjavascriptアプリをデーモンとして動かすとか言われた。さらに、今後、俺らの仕事はNode.jsが中心になってくから。よろしく。とも言われた。
かなり保守的な分野で仕事をしていて、こんなに新しい技術があっさり採用されるのを私は初めて見た。OSSを「サポートできない」という理由で排除するような職場だ。日々、車輪の再発明をしていて、ソースのバージョン管理システムですら「採用事例がない」の一言でSVNを排除して自前の劣化版システムを作るようなところである、のに。いきなりNode.jsとは恐れいった。
さて、俺は全然Node.jsとか使ったこと無い。サーバサイドJavascriptだってのは分かる。というかそれくらいしか知らない。
ざっと検索してみると、「Apacheより速い」とか、「expressが良い感じ」とか、「EJS使える」とか、あんまり本質的でない説明ばかりが並ぶ。私が新しい技術を学ぶとき辟易とするのは、なかなか本質的な説明が見つけられないからだ。一言二言でとってもよく分かるのに、その一言二言が見つからないのである。今回も同じ。
しばらくしてようやく、本質的に分かる良い説明を見つけた。
Node.js とは一体何か? | IBM DeveloperWorks
上記より私が学んだ、私的に簡潔で本質的なNode.jsの説明とは以下のようになる。
- Node.jsはLinuxなどのOSで動作する、JavaScriptエンジンである
- 内部的にはGoogleのV8エンジンが載っている
- Node.jsのAPIを使ってHTTPサーバーを立てられる
- I/O APIは非ブロッキングである
- シングルスレッドで動作する(よって、マルチプロセス・マルチスレッドで動かすオーバーヘッドが無い)
- イベント駆動なプログラミングモデルを使用する(JavaScriptだから)
- npmというパッケージマネージャでだいたい何とかなる
わかった!これでなんとか出来る。頑張る。