風邪でダウンしているので、アスキーの鈴木さんから贈って頂いたNode.js入門を読んだ。Node(と、jsが付かないのが正式名称だということだ)でアプリケーションを組むつもりはないが、ここまで評判ならどんなものか知りたいのは当然なので、「はじめに」の「Nodeの内部構造を理解したい」にしたがって1(Nodeとは何か)、4(Node入門)、19(Nodeはどう作られているか)、21(アドオンの作成)の各章を読み、さらに面白そうだから20(非同期プログラミングの改善)、23(スケーラビリティ)、17(Socket.ioを使ったファイル共有アプリケーションの作り方)、12(ユニットテスト)、13(デバッグ)、8(ストリーム......)、9(ソケット)と、Webアプリケーションがらみのところ以外はほぼ読んでしまった。Nodeの説明なのだが、非同期APIを使ってシステムとやり取りするアプリケーションプラットフォームの説明と抽象化すれば、ちょっとしたコンピュータシステム入門でもあって、その観点からも面白い。文章は粗いところもあるが(恐らく他山の石なのだが、書いている人間には自明なので「AだからB」の「Aだから」抜きで「B」が始まって唐突感があるとか。それが、アスキーならではのまともな技術者が書いているまともな技術書というものじゃなかろうか。まともな技術者ならまともに読める。まともっていうのはsaneの訳だな)読みやすいし、コードはリーダブルだ。説明は簡潔すぎる気がするがもっと詳細を知りたければjoyent/nodeを見れば良いのだろう。何か細かく引っかかる点もあって(癪に障るとか、勘に触るとかいう系のやつ。読み始めて割とすぐにシングルスレッドイベントドリブンのメリットとしてメモリ効率が挙げられているが、そこか?と感じるとか)そのへんは書き手が若いからみたいに思う。Node.js入門(清水俊博/大津繁樹/Jxck/小林秀和/佐々木庸平/篠崎祐輔/高木敦也/西山雄也)約580ページと分厚いが、それだけの内容はあると思う。何より読んで面白いし、僕には時代が生んだ徒花感も感じるけど、Nodeという0年代後半の巨人(0年代前半の巨人がStrutsで、中半がRailsとした場合)について知りませんというのはあり得ないだろうから、まずは手に取って読むと良いと思う。思い付きで書いたが徐々にインフラ側へ深化していくのが面白いな。合わせて、命令型に関数を与えるコードばかりで、その点からもNodeはきっと良いのだろう。