- PVSM.RU - https://www.pvsm.ru -

Операционные системы, потерянные и обретённые внебраузерным джаваскриптом

В прошлом году понятие «внебраузерный JavaScript» чаще всего означало движок Node.js (а не, допустим, Rhino или SpiderMonkey, сильно уступающие ему в популярности в этой области) или какой-нибудь итог его встраивания (например, node-webkit).

Операционные системы, потерянные и обретённые внебраузерным джаваскриптом - 1В нынешнем году в игру вступают форки Node (например, io.js), и их также начинают встраивать — например, проект node-webkit переименовался в nw.js, потому что теперь он использует не Node, а io.js (да и не WebKit, а Blink — с тех давних пор, как Chromium перешёл на этот движок).

Для программистов это означает, в частности, что может отвалиться (или, наоборот, появиться) поддержка той или иной операционной системы. Давайте поговорим об этом.

Какие операционные системы перестают поддерживаться?

Во-первых, первые версии io.js нельзя было установить на Windows XP [1], нельзя было установить и на Windows 2003 [2]. Ещё в середине января казалось [3], что с этим ничего нельзя поделать: объяснение «io.js компилируется в Visual Studio 2013 Windows Desktop Edition, потому что движок V8 стал полагаться на возможности C++11» воспринималось как приговор — однако затем разработчики поправили дело [4], так что в файле CHANGELOG.md [5] ветви v1.x можно прочесть, что поддержка этих версий системы Windows возвратилась в io.js, начиная от версии io.js 1.0.3 (20 января).

Операционные системы, потерянные и обретённые внебраузерным джаваскриптом - 2Подобно кругам по воде, эти изменения прошли по всей экосистеме движков; например, в nw.js версии 0.12.0-alpha3 [6] на поддержку ещё можно надеяться (хотя лично я ещё не успел погонять эту версию на Windows XP), а в предыдущих альфа-версиях её точно нет (потому что они основаны на более ранних версиях io.js).

Во-вторых, KaneUA [7] 19 февраля упомянул [8], что io.js не поддерживает тридцатидвухбитные версии OS X, в отличие от Node.

Поддержка каких операционных систем может появиться?

Во-первых, разрабатывается система Node OS [9] (NodeOS, node-os) на ядре Linux с использованием npm в роли менеджера пакетов и с использованием движка Node в качестве основного рантайма.

Во-вторых, группа разработчиков Nubisa [10] больше года занимается созданием движка JXcore [11] — кросс-платформенного и многопоточного аналога Node, снабжённого встроенною поддержкою SQLite [12] (на основе модуля node-sqlite3 компании Mapbox, к которому руки приложили [13] более дюжины разработчиков). На странице скачивания JXcore [14] можно с неудовольствием прочесть об отказе от поддержки Windows XP и Windows 2003 (подобный отказ вы видели выше на примере ранних версий io.js). В его README-файле [15] (а равно и в FAQ на сайте jxcore.io [16], отличающемся от jxcore.com [11]) нетрудно узнать о стремлении разработчиков поддерживать SpiderMonkey (а не только V8) в качестве средства исполнения скриптов. Наиболее же многообещающим является сообщение [17] о намерении выпустить аналог движка Node для популярных мобильных операционных систем — для Android и для iOS.

Если это намерение исполнится, то я предвижу сильные перемены в возможностях средств веботехнологического подхода к разработке кросс-платформенного софта для мобильников. Раньше у движка Apache Cordova [18] и у различных обёрток вокруг него (Adobe PhoneGap [19], например) единственной исполнительной кросс-платформенной частью был браузер мобильного устройства (и чуть менее восьмисот плагинов [20], более или менее кросс-платформенных), а теперь к нему вдруг прибавится Node-подобный движок и более сотни тысяч готовых npm-пакетов, на нём работающих. Взрывной рост возможностей.

Автор: Mithgol

Источник [21]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/node-js/83631

Ссылки в тексте:

[1] на Windows XP: https://github.com/iojs/io.js/issues/374

[2] и на Windows 2003: https://github.com/iojs/io.js/issues/492

[3] казалось: https://github.com/iojs/io.js/issues/374#issuecomment-69905194

[4] поправили дело: https://github.com/iojs/io.js/pull/512

[5] CHANGELOG.md: https://github.com/iojs/io.js/blob/v1.x/CHANGELOG.md

[6] 0.12.0-alpha3: https://groups.google.com/forum/#!msg/nwjs-general/heM9DRTLx5U/bHLpq7Lr9P8J

[7] KaneUA: http://habrahabr.ru/users/kaneua/

[8] упомянул: http://habrahabr.ru/post/251001/#comment_8290057

[9] Node OS: http://node-os.com/

[10] Nubisa: http://nubisa.com/

[11] JXcore: http://jxcore.com/

[12] встроенною поддержкою SQLite: http://jxcore.com/docs/jxcore-3rd-party-sqlite3.html

[13] руки приложили: http://jxcore.com/docs/jxcore-3rd-party-sqlite3.html#jxcore_3rd_party_sqlite3_contributors

[14] скачивания JXcore: http://jxcore.com/downloads/

[15] README-файле: https://github.com/jxcore/jxcore/blob/29ec3e2a4076b91419d85a80d164d484e1a3bdcc/README.md

[16] jxcore.io: http://jxcore.io/

[17] сообщение: https://github.com/jxcore/jxcore/issues/103

[18] Apache Cordova: http://cordova.apache.org/

[19] Adobe PhoneGap: http://phonegap.com/

[20] плагинов: http://plugins.cordova.io/

[21] Источник: http://habrahabr.ru/post/251171/