CommonJS
CommonJS fue un proyecto con el objetivo de establecer convenciones sobre el ecosistema de módulos para JavaScript fuera del navegador web. La razón principal de su creación fue la gran falta de unidades modulares de scripts de JavaScript de forma comúnmente aceptada, que pudieran ser reutilizadas en entornos diferentes a los proporcionados por un navegador web convencional, por ejemplo, un servidor web o aplicaciones de escritorio nativas que ejecuten scripts de JavaScript.
CommonJS mantiene especificaciones (incluyendo borradores) y una lista de implementaciones en un sitio MediaWiki. Todas las actividades de edición han cesado desde noviembre de 2014, marcando el final efectivo de su vida.[1]
Historia
[editar]El proyecto fue iniciado por el ingeniero de Mozilla Kevin Dangoor en enero de 2009 y se llamó inicialmente ServerJS.[2]
Lo que estoy describiendo aquí no es un problema técnico. Se trata de que la gente se reúna y tome la decisión de dar un paso adelante y empezar a construir algo más grande y más genial juntos.Kevin Dangoor
En agosto de 2009, el proyecto pasó a denominarse CommonJS para mostrar la mayor aplicabilidad de las API's.[3] Las especificaciones se crean y aprueban en un proceso abierto. Una especificación sólo se considera definitiva cuando ha sido terminada por múltiples[4] implementaciones. CommonJS no está afiliado al grupo Ecma International TC39 que trabaja en ECMAScript, pero algunos miembros del TC39 participan en el proyecto.[5]
En mayo de 2013, Isaac Z. Schlueter, el autor de npm, el administrador de paquetes para Node.js, dijo que CommonJS se está volviendo obsoleto por el ahora dominante Node.js, y es evitado por los desarrolladores del núcleo de Node.js.[6]
Especificaciones
[editar]La lista de especificaciones incluye:[7]
- Modules/1.0 (Superseded by Modules/1.1)
- Modules/1.1
- Modules/1.1.1
- Packages/1.0
- System/1.0
Propuestas
[editar]Las propuestas abarcan mucho más que módulos. Pretenden definir un conjunto de APIs que sean útiles tanto para implementaciones de JavaScript no web, con nombres de paquetes estandarizados para proporcionar interoperabilidad dentro del ecosistema. Este objetivo a veces se superpone con el del TC39, y partes como Promesas se han convertido en el propio ECMAScript.
La parte después de la barra es la versión. Cuando una propuesta está en disputa, a cada propuesta individual (incluyendo revisiones secuenciales del mismo autor) se le asigna una nueva letra. Cuando se conoce la dirección principal se le empiezan a asignar versiones numéricas.
- Binary/B,F
- Console (ported from Web)
- Encodings/A,C
- Encodings/A
- HTTP Client/B
- IO/A
- Filesystem/A,A/0
- Modules/Async/A
- Modules/AsynchronousDefinition
- Modules/LoaderPlugin
- Modules/Resources
- Modules/SimpleAsynchronous
- Modules/Transport/B,C,D,E
- Modules/Wrappings
- Modules/Wrappings-Explicit-Dependencies
- Packages/1.1
- Packages/AsynchronousDefinition
- Packages/Mappings/A,B,C,D
- Promises/B,D
- Unit Testing/B,1.0,1.0.1
Implementaciones
[editar]- Akshell[8]
- Common Node[9]
- CommonJS Compiler - a command-line tool that makes Common JS modules suitable for in-browser use[10]
- CommonJS for PHP - a light-weight CommonJS implementation for PHP 5.3+[11]
- CouchDB[12]
- Flusspferd[13]
- GPSEE[14]
- Jetpack
- Joyent Smart Platform[15]
- JSBuild[16]
- MongoDB[17]
- Narwhal (JavaScript platform)[18]
- Node.js (partial; synchronous)[19]
- Persevere[20]
- PINF JavaScript Loader[21]
- RingoJS[22]
- SilkJS[23]
- SproutCore[24]
- TeaJS[25]
- Wakanda[26]
- XULJet[27]
Véase también
[editar]- Comparación de soluciones JavaScript del lado del servidor
- Document Object Model (DOM), una interfaz de programación de aplicaciones (API) del lado del cliente del navegador web comúnmente disponible en JavaScript
- JSGI
Referencias
[editar]- ↑ «Recent changes». CommonJS Spec Wiki.
- ↑ What Server Side JavaScript needs - Blue Sky On Mars
- ↑ «CommonJS: JavaScript Standard Library». Archivado desde el original el 21 de mayo de 2010. Consultado el 23 de mayo de 2020.
- ↑ ProposalProcess - CommonJS Spec Wiki
- ↑ CommonJS: the First Year - Blue Sky On Mars
- ↑ Schlueter, Isaac Z. (25 de marzo de 2013). «Forget CommonJS. It's dead. **We are server side JavaScript.**». GitHub.
- ↑ «JavaScript Standard Library». CommonJS. Archivado desde el original el 28 de mayo de 2014. Consultado el 28 de mayo de 2014.
- ↑ Server-side JavaScript development and hosting - Akshell
- ↑ «olegp/common-node @ GitHub». Archivado desde el original el 21 de noviembre de 2012. Consultado el 23 de mayo de 2020.
- ↑ - GitHub
- ↑ DrBenton/CommonJSForPHP - GitHub
- ↑ Implementations/CouchDB - CommonJS Spec Wiki
- ↑ «Flusspferd - CommonJS platform | Javascript bindings for C». Archivado desde el original el 28 de enero de 2013. Consultado el 23 de mayo de 2020.
- ↑ Implementations/GPSEE - CommonJS Spec Wiki
- ↑ Implementations/Smart - CommonJS Spec Wiki
- ↑ «Homepage - JSBuild». Archivado desde el original el 4 de enero de 2011. Consultado el 23 de mayo de 2020.
- ↑ 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». Archivado desde el original el 12 de septiembre de 2017. Consultado el 23 de mayo de 2020.
- ↑ Implementations/SproutCore - CommonJS Spec Wiki
- ↑ Implementations/TeaJS - CommonJS Spec Wiki
- ↑ «Wakanda». Archivado desde el original el 4 de junio de 2012. Consultado el 23 de mayo de 2020.
- ↑ xuljet - XUL JavaScript Enhanced Toolkit - Google Project Hosting
Enlaces externos
[editar]- Página web oficial
- Kowal, Kris (Dec 2009). «CommonJS effort sets JavaScript on path for world domination». Ars Technica.