CommonJS
#JavaScript
Mtivation
JS のモジュールシステムについて ( JavaScript の Module System の歴史 )学習した時に、詳しく知りたくなったので。ただ、どうやら CommonJS、既に仕様策定は活発ではないと言うか、進んでいないように見える...
Node.js に食われた、という理解で良いのだろうか...
経緯的な話で言うと、もともと Node.js は CommonJS の一部 (Module や Unit Testing) を実装していた とのこと。ただ、2013 年時点で、すでに Node.js は CommonJS は眼中にないみたいな話もあるようだ。
Schlueter, Isaac Z. (25 Mar 2013). "Forget CommonJS. It's dead. **We are server side JavaScript.**". GitHub.
CommonJS とは
2009 年あたりに、Server Side JavaScript の話がで始めた。2009 年 1 月、Mozilla のエンジニア Kevin Dangoor により、ServerJS というプロジェクトが立ち上げられた。名称からもわかる通りサーバサイド JS の仕様を決めるものとして立ち上がったのだが、同年 8 月により汎用的な API を策定する目的で、 CommonJS へと名称が変更となった。
CommonJS 自体は JavaScript のライブラリではなく、標準化組織の名称。
ECMA = JavaScript の 言語仕様
W3C = JavaScript の DOM/DOM イベント等の WebAPI 仕様 を策定
CommonJS = Server Side JavaScript の標準 API
CommonJS 実装
よく調べていないけど下記のようなものがあると言う 話を見た (2011 のスライドなので情報が古そうだ)。
Node.js
RingoJS
Titanium Mobile
CouchDB
ただ、Node.js は CommonJS から離れ独自実装をどんどん追加していき、他の言語がそれに追随しているみたいな状態が あるらしい。
仕様を学ぶ
公式サイトは以下で、モジュールに関する仕様 も置いてあるように見えるが、いまいちサイトの見方が分からない。
http://www.commonjs.org/
どうやら仕様は Wiki で確認できるようだ。Modules の仕様は以下で確認できるっぽい。
http://wiki.commonjs.org/wiki/Modules