プログラミング: 2012年5月アーカイブ

先のエントリで書いた node.js というのは「サーバサイド JavaScript」を実現するためのアプリケーションサーバです。

シェル上で JavaScript を実行するためのインタプリタや、コマンドラインから JS ファイルを読み込んで実行される機能も用意されているので、色々な使い方が出来るね。

例えば、いつもの Hello World! 表示を例にとると、

・シェル上でインタプリタを使って・・・

%node
> console.log("Hello World");
Hello World
undefined
>
(^C again to quit)
> %

とか(ん?何が undefined なんだろ?)、

・JS ファイルを読み込んで・・・

%cat > test/hello_world.js
console.log("Hello World");
%node test/hello_world.js
Hello World

とか、

・アプリケーションサーバとして・・・
(ソースは、@ITの記事を参考)

%cat > test/hello_world.js
var 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.js
The "sys" module is now called "util". It should have a similar interface.

という状態で、ブラウザからこのサーバの 8080 ポートにアクセスすれば、

20120512_nodejs.jpg
という具合にサーバサイドで JavaScript が実行された結果がブラウザに表示される。

まあ、こうして色々試しているのは楽しいが、さて、実際のところ JavaScript を使うアプリケーションサーバってどのくらい「実務」の場で需要あんだろ?
いや、需要がこれから伸びそうなら、もう少し真面目に node.js を追っかけようと思うんだけど、どうなんかね?これ。

いままでにも、「JavaScript を使うアプリケーションサーバ」に関してはいくつも存在していて、それは全然メジャーな存在にはなってないんだけど、じゃあ、今、何で node.js なの?って言うと、どうも「高パフォーマンス」なところが注目されているようなんだが・・・

ただ、「node.jsは普及しそうに無い(ニュースの社会科学的な裏側)」なんかを読むと、確かに同時接続ユーザが 400 を超えたあたりから Apache+mod_php な環境よりパフォーマンスの差が出てくるようだけど、うちはその規模のお客さんは少ないし、何より、今 Perl や PHP で書いているプログラムを JavaScript に置き換えていけるほど、JavaScript でややこしい処理が書けるプログラマってどの程度いるんだろ?とか思ったり。
(糞みたいなプログラム書かれちゃうと、反対にパフォーマンス落ちちゃうみたいだし(^^;)

コマンドラインから JS ファイルを実行出来るので、忙しい時に「JavaScript しか知らない Web プログラマの卵」に開発の一部を任せて、例えば CGI プログラムの中で、

#!/usr/bin/perl
print "Content-type: text/plain; charset=UTF-8\n\n";
print `/usr/local/bin/node /usr/home/shinoda/test/hello_world.js`;
exit();

みたいに使うとか。

まあ、「JavaScript しか知らないけど業務アプリが組める」プログラマなんていないだろうから意味無いか(笑)

つーことで、「そういうものもある」程度に覚えておくことにしようてえ。
某 OSS アプリで必要なため、node.js をセットアップした。
サーバはいつもの(笑)FreeBSD 8.1-RELEASE on ASUS EeePC 4G-X である。

そもそも俺は node.js の存在すら知らなかったんで(^^;、FreeBSD へのセットアップ方法をググりつつ作業をすすめたのだが、方々のサイトで、何か、一発で上手くいかないようなことが書かれてるなあ(^^;;;;

・・・と、若干心配したのだが、全然そんなことはなく、make に gmake を使うということだけ注意すれば、何の問題もなく一発でインストール出来た。

いや、実は最初は /usr/bin/make を使ったので、

"config-unix.mk", line 164: warning: duplicate script for target "distclean-platform" ignored
"Makefile", line 78: Need an operator
make: fatal errors encountered -- cannot continue
Waf: Leaving directory `/usr/local/src/node-v0.6.9/out'
Build failed:  -> task failed (err #1):
        {task: uv uv.h -> uv.a}

というエラーを出して make が終わっちゃったんだけど、ちゃんと /usr/local/bin/gmake を使えば、

# cd /usr/local/src
# wget http://nodejs.org/dist/node-v0.6.9.tar.gz
# tar xfz node-v0.6.9.tar.gz
# cd node-v0.6.9
# ./configure --prefix=/usr/local
# gmake
# gmake install

という手順で問題なく終わる。

# rehash
# node -v
v0.6.9

てな具合に、安定版最新の v0.6.9 を、FreeBSD 8.1-R にも簡単にセットアップできました。ほい。

このアーカイブについて

このページには、2012年5月以降に書かれたブログ記事のうちプログラミングカテゴリに属しているものが含まれています。

前のアーカイブはプログラミング: 2012年2月です。

次のアーカイブはプログラミング: 2013年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。


月別 アーカイブ

電気ウナギ的○○ mobile ver.

携帯版「電気ウナギ的○○」はこちら