Hatena::ブログ(Diary)

Web系がおもしろい。

2011-03-12

RingoJS周りの用語復習

| 07:00 | RingoJS周りの用語復習のブックマークコメント

昨日のアクセス数が結構伸びててびっくりしました。。ちょっと今日改めて見直したら、ちょっとタイトルが「ServerSideJS用語まとめ」みたいになってたので修正しました。僕が調べたのはRingoJS周りの用語です。すみません。。


今まで結構勢いでブログ書き散らしてたので、よく分かってないまま進めていたところが多かったです。なので、一旦用語を調べてまとめてみようと思いました。

自分の言葉で書くとまたおかしくなってしまうので、なるべく引用で書いてます。


CommonJS

CommonJSとは

CommonJSとは、JavaScriptでいろんなアプリケーションを作るための標準仕様。(を策定するプロジェクト)

いろんなアプリケーション

CommonJSというライブラリはこの世に存在しない。あくまで仕様を決めているだけ。

名古屋Reject会議でCommonJSの話をしてきました

上記プレゼンの「いろんなアプリケーション」に関しては公式にもリストがありました。

With CommonJS-compliant systems, you can use JavaScript to write:

CommonJS


この「CommonJS」という名前が出来る前は、「ServerJS標準」と呼ばれていたようです。(下記Narwhalの記事参照)

そんな中、とあるエンジニアが乱立するServer Side JavaScriptの独自進化を憂い、サーバーサイドのJSには何が共通して必要とされるのかを考え、2009年1月末に自分の意見をブログで公開して議論の場となるメーリングリストを設けた。

これがCommonJSの始まりである。

以下がそのブログ

http://www.blueskyonmars.com/2009/01/29/what-server-side-javascript-needs/

node.jsとは何か(3)



CommonJSの仕様に沿って作られたライブラリフレームワーク等のリスト

以下にまとめられています。

CommonJS: JavaScript Standard Library


JSGI(JavaScript gateway Interface) ※

http://wiki.commonjs.org/wiki/JSGI

現在策定が進んでいるインターフェース仕様。といっても、結構できあがってはいるらしいです。

CommonJSとは分離しているようにも見えます。しかし、CommonJSのWikiを見ると、"Current Efforts"の項に並んでいるのでCommonJSの一部なのかなっていう気もするんですが、ちょっと分からないです…。


※下記サイトにはgateって書いてあるんですが、"gate"って表現してるサイトは以下のサイトしかないので、多分以下のサイトの表記が間違ってるんじゃないかと思います。。

http://www.sitepen.com/blog/2010/01/19/commonjsjsgi-the-emerging-javascript-application-server-platform/


Jetty

JavaScriptとはあんまり関係ないですが。。

Jetty は、100%JavaJava Servletコンテナ・Webサーバである。

(中略)

その一方で、Yahoo!HadoopGoogle App Engineといった大規模でスケーラビリティが重視されるサービスにおいても採用されている。

Jettyサーバ


Rhino

Rhino はすべてが Java で記述された JavaScriptオープンソースな実装です。

Rhino - MDC Doc Center

GAEは、デプロイするソースがJavaPythonでないと実行できません。Rhinoは全てJavaで書かれているので、GAE上でも使えます。


Narwhal

http://narwhaljs.org/

http://www.moongift.jp/r/2009/08/narwhal/

Narwhalはサーバサイドで利用することを想定したJavaScriptライブラリで、ServerJS標準のAPIを実装している。

サーバサイドJavaScriptライブラリ「Narwhal」を使ってみよう



jack

http://jackjs.org/

CommonJSで仕様が考えられているJSGIの実装。Pythonでいう所のWSGI, Rubyでいう所のRack, Javaでいう所のServlet APIといった感じ。動作には前述のNarwhalが必要。

Server-side JavaScript と CommonJS



Nitro

http://www.nitrojs.org/

jack対応のServer-side JavaScriptフレームワークGoogle App Engineに互換性があります。

Server-side JavaScript と CommonJS

https://github.com/gmosx/nitro/


RingoJS

Server-side JavaScriptフレームワークです。Rhinoがベースとなっており、GAEで動かすことが出来ます。

特徴はこちらの「RingoJS 触ってみた - syttruの日記」が詳しいです。


前身はHelma NGです。(現在はRingoJSサイトへリダイレクトするようです。)


AppengineJS

GAE上で動くServer-side JavaScriptのためのライブラリです。

NitroRingoJSなどと組み合わせて使用します。

This SDK is part of the Nitro ecosystem of Web Application development resources. The SDK tracks the latest developments in the CommonJS group.

This SDK is compatible with RingoJS. An older version worked with Narwhal and it should be relatively easy to use the SDK with narwhal (some changes will be required though).

*




参考

今回調べるに当たって、いろんなサイトを参考にさせていただきました。特に、

…に関してはすごく参考にさせて頂きました!