2011年はサーバサイドJavaScriptの年になる

2011年1月7日

「2011年はサーバサイドJavaScriptの年になる」 こう書いているのは、JavaScriptのテストフレームワークZombie.jsの作者Assaf Arkin氏。ブログLabnotesで、エントリ「2011 is year of the Server-Side JavaScript」を公開しています。

2011 is year of the Server-Side JavaScript /by @assaf

5年前のRubyや90年代のJavaに似ている

Arkin氏は、JavaScriptが登場したときにNetscapeはサーバサイドJavaScriptも用意していたのを覚えている人はいないだろうな、との書き出しで過去を振り返っています。

not many people remember, Server-Side JavaScript for writing the back-end logic. I believe back then it was called LiveWire.

多くの人はバックエンドロジックのためのサーバサイドJavaScriptを覚えていないだろう。それはたしかLiveWireと呼ばれていた。

そしてそれから十年以上がたち、Node.jsやRhinoといったサーバサイドJavaScriptの実装が複数登場してきたことを紹介。

We’ve got three runtime platforms for choose from: the insanely fast Node.js, the JVM-based Rhino and it’s C-based sibling SpiderMonkey. Competition is healthy. Then again, I’m betting on Node.js.

いまは3つの(JavaScript)ランタイムプラットフォームを選ぶことができる。狂ったように速いNode.js、JVMベースのRhino、そしてCベースの兄弟のSpiderMonkey。競争は健全なことだ。そして私はNode.jsに入れ込んでいる。

まだサーバサイドJavaScriptは未成熟で、セグメンテーションフォルトも何度か経験しているとArkin氏は指摘しつつ、これは5年前のRubyや、90年代のJavaの状況に似ていると。

it’s not much different than what Ruby was five years ago, or Java back in the late 90′s. We’ve all got to start somewhere.

5年前のRubyの状況とそれほど違わないし、あるいは90年代後半のJavaのようでもある。まだ始まったばかりなのだ。

RubyやJavaのように、サーバサイドJavaScriptも広く使われるようになるだろうという彼の思いを言外に感じます。

シングルスレッドで動作するNode.js。リクエストを細分化して処理

新春特別企画:2011年のJavaScript ─ウェブアプリ全盛の時代へ|gihyo.jp … 技術評論社

サーバサイドJavaScriptの実装でもっとも注目されているのがNode.jsです。これはどのようなものなのでしょうか? gihyo.jpの新春特別企画として掲載された記事「2011年のJavaScript ─ウェブアプリ全盛の時代へ」で分かりやすく説明されていますので引用しましょう。

基本的にWebサーバは多くのリクエストを処理するために多数のスレッドを用いますが、Node.jsはそうではない、というところから説明が始まります。

Node.jsはシングルスレッドで動作するので当然スレッドを増やす必要がありません。しかしそうすると,1台のサーバー(アプリケーション)では一人ずつしか対応できないように思えます。実際,Node.jsは一度にひとつのタスクしか行いません。しかし,実際に複数人のリクエストを並列で処理することができます。

Node.jsはシングルスレッドであることが最大の特徴。それでどうやって複数のリクエストを処理するのでしょうか。

重要なのは,リクエストとタスクの違いです。ここで言うタスクとはリクエストを細分化したもので,例えばリクエストの解析や,キャッシュサーバーやデータベースサーバーへの問い合わせ,レスポンスの作成といった個々の処理を指します(もしくはイベントといったほうが適切です)。Node.jsはリクエスト(コネクション)という単位に縛られることなく,細分化したタスクを順番に処理していきます。より具体的に言えば,一人目がデータベースに問い合わせている間に二人目のリクエストの処理を行い,データベースから結果が返ってきたら一人目の処理へ戻り,といった具合です。データベースやファイルI/Oに問い合わせている間に何もすることがない,といったことが起こりません。

こうしたリクエストの細分化による高い効率性が、Node.jsが注目を集めているポイントだということです。

Node.jsの特徴

【レビュー】JavaScriptでつくる高効率サーバアプリ「Node.js」を試す方法 | エンタープライズ | マイコミジャーナル

昨年末の12月28日にマイコミジャーナルで公開された記事「JavaScriptでつくる高効率サーバアプリ「Node.js」を試す方法」でも、Node.jsの特徴を次のように紹介していました。

Yahoo!もサーバサイドJavaScriptを開発中

米Yahoo!で議論された、フロントエンドエンジニアリングの将来(前編) - Publickey

Publickeyで昨年11月に公開した記事「米Yahoo!で議論された、フロントエンドエンジニアリングの将来(前編)」では、Yahoo! User Interfaceラボ(YUI)のThomas Sha氏が次のように発言しています。

YUIがサーバサイドといった新しい領域にも努力を広げようとしているのは本当です。研究段階から脱しようとしています。これはとても重要なものになるでしょうし、短期間で終わるものでもないと思っています。

「短期間で終わるものでもないと思っています」というのは重要な発言ですね。そしてNode.jsの作者であるRyan Dahl氏は、Node.jsの人気について次のように分析しています。

Nodeにこれだけ人気があるのはサーバでもJavaScriptが使えるためで、それは僕が意図したことでもあります。と同時に、それはサーバサイドを書く手段として望まれていたことでもあったんです。それは大きな断絶だったんです。実はサーバを書くエンジニアはクライアントサイドを書くエンジニアと同じだったのですから。

そしてこのシングルスレッド化されたサーバサイドのプログラミングスタイルこそ、サーバを書くのに求められていたものなんです。

Webアプリケーションがアプリケーションの主流になるとき、そのバックエンドも同じテクノロジーであるJavaScriptで開発したいというニーズは確実にあります。サーバサイドJavaScriptは今年から来年にかけて成熟度を上げていき、新しもの好きのためのエマージングテクノロジーから、いずれ業務アプリケーションの開発の分野にまで影響を及ぼすことは確実と思います。

このエントリーをはてなブックマークに追加
follow us in feedly

タグ : JavaScript , Node.js , Web標準 , システム開発 , スクリプト言語



≫次の記事
2010年12月のPublickey人気記事トップ10!「NoSQLの恐ろしいこと」「少人数は高品質」「無料で使えるクラウドDB」
≪前の記事
[速報]マイクロソフト、ARMプロセッサ対応の次期WindowsをCESで初披露。CES2011

Loading...

Blogger in Chief

photo of jniino Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求しています。
詳しいプロフィール


Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed



Publickey 最新記事 10本

Publickey Topics 最新記事 10本


PR - Books


fig

fig

fig

fig



blog comments powered by Disqus