В прошлом году понятие «внебраузерный JavaScript» чаще всего означало движок Node.js (а не, допустим, Rhino или SpiderMonkey, сильно уступающие ему в популярности в этой области) или какой-нибудь итог его встраивания (например, node-webkit).
В нынешнем году в игру вступают форки Node (например, io.js), и их также начинают встраивать — например, проект node-webkit переименовался в nw.js, потому что теперь он использует не Node, а io.js (да и не WebKit, а Blink — с тех давних пор, как Chromium перешёл на этот движок).
Для программистов это означает, в частности, что может отвалиться (или, наоборот, появиться) поддержка той или иной операционной системы. Давайте поговорим об этом.
Какие операционные системы перестают поддерживаться?
Во-первых, первые версии io.js нельзя было установить на Windows XP, нельзя было установить и на Windows 2003. Ещё в середине января казалось, что с этим ничего нельзя поделать: объяснение «io.js компилируется в Visual Studio 2013 Windows Desktop Edition, потому что движок V8 стал полагаться на возможности C++11» воспринималось как приговор — однако затем разработчики поправили дело, так что в файле CHANGELOG.md ветви v1.x можно прочесть, что поддержка этих версий системы Windows возвратилась в io.js, начиная от версии io.js 1.0.3 (20 января).
Подобно кругам по воде, эти изменения прошли по всей экосистеме движков; например, в nw.js версии 0.12.0-alpha3 на поддержку ещё можно надеяться (хотя лично я ещё не успел погонять эту версию на Windows XP), а в предыдущих альфа-версиях её точно нет (потому что они основаны на более ранних версиях io.js).
Во-вторых, KaneUA 19 февраля упомянул, что io.js не поддерживает тридцатидвухбитные версии OS X, в отличие от Node.
Поддержка каких операционных систем может появиться?
Во-первых, разрабатывается система Node OS (NodeOS, node-os) на ядре Linux с использованием npm в роли менеджера пакетов и с использованием движка Node в качестве основного рантайма.
Во-вторых, группа разработчиков Nubisa больше года занимается созданием движка JXcore — кросс-платформенного и многопоточного аналога Node, снабжённого встроенною поддержкою SQLite (на основе модуля node-sqlite3 компании Mapbox, к которому руки приложили более дюжины разработчиков). На странице скачивания JXcore можно с неудовольствием прочесть об отказе от поддержки Windows XP и Windows 2003 (подобный отказ вы видели выше на примере ранних версий io.js). В его README-файле (а равно и в FAQ на сайте jxcore.io, отличающемся от jxcore.com) нетрудно узнать о стремлении разработчиков поддерживать SpiderMonkey (а не только V8) в качестве средства исполнения скриптов. Наиболее же многообещающим является сообщение о намерении выпустить аналог движка Node для популярных мобильных операционных систем — для Android и для iOS.
Если это намерение исполнится, то я предвижу сильные перемены в возможностях средств веботехнологического подхода к разработке кросс-платформенного софта для мобильников. Раньше у движка Apache Cordova и у различных обёрток вокруг него (Adobe PhoneGap, например) единственной исполнительной кросс-платформенной частью был браузер мобильного устройства (и чуть менее восьмисот плагинов, более или менее кросс-платформенных), а теперь к нему вдруг прибавится Node-подобный движок и более сотни тысяч готовых npm-пакетов, на нём работающих. Взрывной рост возможностей.
Автор: Mithgol