先のエントリで書いた node.js というのは「サーバサイド JavaScript」を実現するためのアプリケーションサーバです。
シェル上で JavaScript を実行するためのインタプリタや、コマンドラインから JS ファイルを読み込んで実行される機能も用意されているので、色々な使い方が出来るね。
例えば、いつもの Hello World! 表示を例にとると、
・シェル上でインタプリタを使って・・・
%node> console.log("Hello World");Hello Worldundefined>(^C again to quit)> %
とか(ん?何が undefined なんだろ?)、
・JS ファイルを読み込んで・・・
%cat > test/hello_world.jsconsole.log("Hello World");%node test/hello_world.jsHello World
とか、
・アプリケーションサーバとして・・・
(ソースは、@ITの記事を参考)
%cat > test/hello_world.jsvar sys = require('sys');var http = require('http');var server = http.createServer(function (request, response) {response.writeHead(200, {'Content-Type': 'text/plain'});response.write('Hello World\n');response.end();}).listen(8080);%node test/hello_world.jsThe "sys" module is now called "util". It should have a similar interface.
という状態で、ブラウザからこのサーバの 8080 ポートにアクセスすれば、
という具合にサーバサイドで JavaScript が実行された結果がブラウザに表示される。
まあ、こうして色々試しているのは楽しいが、さて、実際のところ JavaScript を使うアプリケーションサーバってどのくらい「実務」の場で需要あんだろ?
いや、需要がこれから伸びそうなら、もう少し真面目に node.js を追っかけようと思うんだけど、どうなんかね?これ。
いままでにも、「JavaScript を使うアプリケーションサーバ」に関してはいくつも存在していて、それは全然メジャーな存在にはなってないんだけど、じゃあ、今、何で node.js なの?って言うと、どうも「高パフォーマンス」なところが注目されているようなんだが・・・
ただ、「node.jsは普及しそうに無い(ニュースの社会科学的な裏側)」なんかを読むと、確かに同時接続ユーザが 400 を超えたあたりから Apache+mod_php な環境よりパフォーマンスの差が出てくるようだけど、うちはその規模のお客さんは少ないし、何より、今 Perl や PHP で書いているプログラムを JavaScript に置き換えていけるほど、JavaScript でややこしい処理が書けるプログラマってどの程度いるんだろ?とか思ったり。
(糞みたいなプログラム書かれちゃうと、反対にパフォーマンス落ちちゃうみたいだし(^^;)
コマンドラインから JS ファイルを実行出来るので、忙しい時に「JavaScript しか知らない Web プログラマの卵」に開発の一部を任せて、例えば CGI プログラムの中で、
#!/usr/bin/perlprint "Content-type: text/plain; charset=UTF-8\n\n";print `/usr/local/bin/node /usr/home/shinoda/test/hello_world.js`;exit();
みたいに使うとか。
まあ、「JavaScript しか知らないけど業務アプリが組める」プログラマなんていないだろうから意味無いか(笑)
つーことで、「そういうものもある」程度に覚えておくことにしようてえ。