CommonJS
表示
CommonJSとは、サーバーサイドなどのウェブブラウザ環境外におけるJavaScriptの各種仕様を定めることを目標としたプロジェクトである。
歴史
[編集]CommonJSプロジェクトは元々、2009年1月にMozillaのエンジニアKevin DangoorによりServerJSプロジェクトとして立ち上げられた[1]。
「 | What I’m describing here is not a technical problem. It’s a matter of people getting together and making a decision to step forward and start building up something bigger and cooler together. | 」 |
— Kevin Dangoor[1] |
2009年8月、プロジェクトはより広い範囲のAPIを対象とすることを示すために、現在のCommonJSへと改名された[2]。仕様の作成と採用はオープンプロセスで進められた。仕様は複数の実装が完了した後、最終的に確定とされた[3]CommonJSはECMAScriptの仕様を定めるEcmaインターナショナルのTC39グループとは直接関係はないが、TC39のメンバーの一部はCommonJSプロジェクトに参加している。[4]。
2013年5月、Node.jsのパッケージマネージャーnpmの作者であるIsaac Z. Schlueterは、CommonJSはNode.jsにとって時代遅れになりつつあり、Node.jsの主要開発者はCommonJSから離れていると語った[5]。
仕様
[編集]CommonJSで定められた仕様としては以下のようなものがある[6] なおModuleとPromiseについては、後に2015年のECMAScript 6で標準規格が定められている。[※ 1]。
現行
[編集]- Modules/1.0 (Modules/1.1で廃止)
- Modules/1.1
- Modules/1.1.1
- Packages/1.0
- Promises/B
- Promises/C
- System/1.0
提案
[編集]- Binary/B
- Binary/F
- Console
- Encodings/A
- Filesystem/A
- Filesystem/A/0
- Modules/Async/A
- Modules/Transport/B
- Packages/1.1
- Packages/Mappings
- Unit Testing/1.0
実装
[編集]- Akshell[7]
- Common Node[8]
- CommonJS Compiler - ブラウザ環境でCommon JSモジュールを使うためのコマンドラインツール[9]
- CommonJS for PHP - PHP 5.3以降用の軽量CommonJS実装[10]
- CouchDB[11]
- Flusspferd[12]
- GPSEE[13]
- Jetpack
- Joyent Smart Platform[14]
- JSBuild[15]
- MongoDB[16]
- Narwhal[17]
- Node.js[18]
- Persevere[19]
- PINF JavaScript Loader[20]
- RingoJS[21]
- SilkJS[22]
- SproutCore[23]
- TeaJS[24]
- Wakanda[25]
- XULJet[26]
注釈
[編集]- ^ CommonJSの仕様に近いが、CommonJSがそのまま採用されたわけではない。
出典
[編集]- ^ a b What Server Side JavaScript needs - Blue Sky On Mars
- ^ CommonJS: JavaScript Standard Library
- ^ ProposalProcess - CommonJS Spec Wiki
- ^ CommonJS: the First Year - Blue Sky On Mars
- ^ “Forget CommonJS. It's dead. **We are server side JavaScript.**”. GitHub (2013年3月25日). 2016年6月20日閲覧。
- ^ “JavaScript Standard Library”. CommonJS. 2012年9月21日閲覧。
- ^ Server-side JavaScript development and hosting - Akshell
- ^ olegp/common-node @ GitHub
- ^ - GitHub
- ^ DrBenton/CommonJSForPHP - GitHub
- ^ Implementations/CouchDB - CommonJS Spec Wiki
- ^ Flusspferd - CommonJS platform | Javascript bindings for C
- ^ Implementations/GPSEE - CommonJS Spec Wiki
- ^ Implementations/Smart - CommonJS Spec Wiki
- ^ Homepage - JSBuild
- ^ MongoDB
- ^ Implementations/Narwhal - CommonJS Spec Wiki
- ^ Implementations/node.js - CommonJS Spec Wiki
- ^ Implementations/Persevere - CommonJS Spec Wiki
- ^ pinf/loader-js - GitHub
- ^ Implementations/RingoJS - CommonJS Spec Wiki
- ^ SilkJS WWW Site
- ^ Implementations/SproutCore - CommonJS Spec Wiki
- ^ Implementations/TeaJS - CommonJS Spec Wiki
- ^ Wakanda
- ^ xuljet - XUL JavaScript Enhanced Toolkit - Google Project Hosting