CommonJS -движение за использование JavaScript вне браузера
CommonJS - это стихийно возникшее движение за быструю разработку стандартов, создание расширенной библиотеки функций и устранение препятствий, стоящих перед JavaScript на пути к повышению популярности языка в областях, выходящих за рамки традиционного использования внутри браузера.В частности, обозначены такие проблемы, как:
- Отсутствие системы модулей;
- Отсутствие стандартной библиотеки;
- Отсутствие стандартных интерфейсов, например для web-сервера или СУБД;
- Отсутствие пакетного менеджера, управляющего зависимостями и автоматически их устанавливающего (за исключением JSAN).
Инициатива CommonJS зародилась в январе этого года с призыва web-разработчика Кевина Денгура (Kevin Dangoor) собраться вместе энтузиастам серверного JavaScript, написать кое-какую спецификацию и поддержать способность к взаимодействию любимой платформы. Призыв был услышан. Спецификация для системных и интероперабельных модулей была готова через месяц. На сегодняшний день подготовлено более дюжины совместимых реализаций загрузчиков модулей CommonJS и сотни совместимых модулей.
Кроме того, CommonJS - это растущее собрание стандартов, в том числе охватывающих направления:
- Модули
- Двоичные строки и буферы
- Кодировки набора символов
- Бинарные, буферизованные потоки и потоки текстового ввода/вывода (io)
- Аргументы, окружение и потоки системного процесса
- Интерфейс файловой системы
- Сокеты
- Сообщения, выполнение и отчётность юнит-тестов
- Интерфейс web-сервера, JSGI
- Пакеты локальные и удалённые, а также управление ими
На конференции jsconf.eu уже были представлены проекты, использующие CommonJS, и многие проявили интерес к вводу в действие CommonJS на свои платформы, в их числе:
- Серверная JavaScript-платформа NodeJS на базе сверх-быстрого движка V8;
- Narwhal - кроссплатформенная, мульти-движковая JavaScript-платформа общего назначения;
- Экспериментальный web-IDE Bespin будет включать в себя серверные компоненты JavaScript на базе SproutCore, серверного фреймворка, поддерживающего модули CommonJS;
- Wakanda - сквозная ("end-to-end") платформа на базе движка SquirrelFish.
© OpenNet