[Перевод] Вышла в свет Node.js v4.0.0

Сообщество Node.js проекта и члены Node.js Foundation с гордостью представляют 4.0.0 версию продукта. В этот релиз включены бесчисленные часы совместно работы проектов Node.js и io.js, которые были успешно объедены в одну кодовую базу. Проект Node.js управляется командой из 44 человек, 15 из которых формируют Technical Steering Committee (TSC). Кроме того, более 100 участников были добавлены в список людей, способных влиять на развитие ядра, по сравнению в числом участников версии v0.12.7.

Node.js v4.0.0 содержит V8 v4.5, это та же версия V8, которая поставляется вместе с веб браузером Chrome сегодня. Это приносит с собой множество бонусов для пользователей Node.js, наиболее важное из которых, это поддержка ES6 стандарта, которые включены по умолчания, включая видимость блоков, классов, типизированные массивы (Node’s Buffer теперь работает с Uint8Array), генераторы, Promises, Symbols, строковые шаблоны, коллекции (Map, Set, и так далее) и, новая для V8 v4.5, стрелочные функции.

За прошлый год, благодаря пожертвованиям от таких компаний, как Rackspace, DigitalOcean, Scaleway, miniNodes, Voxer, Joyent, CloudFlare, ARM Holdings, а так же отдельных личностей из сообщества, мы создали замечательный тестовый кластер, который включает в себя впечатляющую линейку Linux систем, OS X, Windows, FreeBSD и SmartOS. В качестве нововведения в Node.js, мы добавили поддержку первого поколения процессоров на ARM архитектуре.

Node.js v4 так же привносит планы по долгосрочной (LTS) поддержке и регулярным релизам. Система именования версий теперь будет придерживаться SemVer рекомендаций, что ожидаемо привнесет увеличение числа минорных версий и патчей в ближайшие недели для исправления ошибок и добавления новых версий. Чего мы не будем делать в ветви разработки 4.x так это добавление несовместимых изменений.

Тем не менее, мы будем стремиться выпустить версию с долгосрочной поддержкой в Октябре 2015 года. В это же самое время, мы начинаем 5.х версию ветви разработки, которая должна быть нацелена на выпуск стабильных релизов новой версии Node.JS Эта ветвь, скорее всего будет содержать последние версии V8 и наборы критических изменений, без которых можно было бы обойтись. Поддержка 4.x ветки в рамках LTS будет поддерживаться в течении 18 месяцев, с акцентом на стабильность и безопасность без добавления ненужного функционала. Кроме того, по окончании этого срока, 4.x ветка будет поддерживаться еще в течении 12 месяцев, во время которых будут исправляться критические ошибки и проблемы безопасности.

Параллельно, мы будем выпускать новые стабильные релизы с периодичностью в 6 месяцев, один в Октябре и один в Апреле, каждого года. Стабильные ветви будут выпускаться регулярно и продолжат развиваться, для которых будут выпускаться минорные изменения и патчи каждую неделю или две. Каждый второй стабильный релиз будет продолжать существовать в рамках LTS до завершения следующего октября. Это означает, что мы будем обслуживать несколько версий LST с общим сроком поддержки каждой до 30 месяцев (LTS + обслуживание). Мы считаем, что стабильность и долгосрочная поддержка LTS релизов, обеспечат возможность оставаться на острие JavaScript технологий и одновременно обеспечивать стабильность и безопасность, которая является основой Enterprise пользователей, которые с гордостью могут говорить о Node.js в качестве основной технологии, некоторые из которых уже входят в число участников Node.js Foundation.

Как всегда, с вводом в строй нового мажорного релиза, мы не ожидаем безболезненного перехода на Node.js четвертой версии. потребуется время для адаптации, особенно в области скомпилированных дополнений с учетом новой версии V8 (намек на NAN для нашего официального решения обратной совместимости). К счастью, серия релизов io.js версии 3.х дала возможность, с большего, подготовить свой код для релиза Node.js 4.x версии.

Первоначальный список исключений обратно совместимости между версиями 0.12 и 4 можно найти на Wiki странице LTS релиза. В ближайшее время мы продолжим наполнение этой Wiki для отображения наиболее полной документации и списка изменений, о которых вы должны быть в курсе.

Пожалуйста, сообщайте о всех найденных проблемах в нашем новом доме на GitHub https://github.com/nodejs/node и присоединяйтесь к растущему числу людей, что помогают нам развивать ядро!

Заметные изменения


Это список изменений, по сравнению с последней версией io.js v3.3.0. Пожалуйста, ознакомьтесь со списком заметных изменений для версий v3.x, v2.x и v1.x собранных в полном списке изменений, для понимания полного списка изменений, по сравнению с версий 0.12.x Обратите внимание, что это только некоторые изменения в ветке v3.x, а также изучите список всех несовместимых особенностей, для того, чтобы не испытывать проблем совместимости Node.js и io.js проектов.

  • Child_process: ChildProcess.prototype.send () и process.send () работают асинхронно на всех платформах, так необязательный параметр обратного вызова был введен, который будет вызван после отправки сообщения, т.е. .send (message[, sendHandle][, callback]) (Ben Noordhuis) #2620.
  • node: Переименование «io.js» кода в «Node.js» (cjihrig) #2367.
  • node-gyp: Этот релиз включает в себя обновленную версию node-gyp которая работает со всеми версиями Node.js и io.js включая nightly и сборки релиз кандидатов. Начиная с io.js v3 и Node.js v4 и далее, необходимо будет скачивать только заголовки, а не весь код, как было ранее (Rod Vagg) #2700
  • npm: Обновление версии до 2.14.2 с 2.13.3, включая обновления безопасности, смотрите https://github.com/npm/npm/releases/tag/v2.14.2 для более подробного описания, (Kat Marchán) #2696.
  • timers: Улучшена производительность таймеров после портирования с 0.12 версии, плюс минорные изменения (Jeremiah Senkpiel) #2540, (Julien Gilli) nodejs/node-v0.x-archive#8751 nodejs/node-v0.x-archive#8905
  • util: util.is*() помечен устаревшим, начиная с сообщении об устаревании, описными в документации, пользователям рекомендуется искать более надежные альтернативы в npm репозитории, (Sakthipriyan Vairamani) #2447.
  • v8: Обновлена версия до 4.5.103.30 с 4.4.63.30 (Ali Ijaz Sheikh) #2632.
    • Внедрены новые методы прототипов для TypedArray: copyWithin (), every (), fill (), filter (), find (), findIndex (), forEach (), indexOf (), join (), lastIndexOf (), map (), reduce (), reduceRight (), reverse (), slice (), some (), sort (). Ознакомитесь с https://developer.mozilla.org/ru-RU/docs/Web/JavaScript/Reference/Global_Objects/TypedArray для более детальной информации.
    • Внедрены новые методы TypedArray.from () и TypedArray.of () Ознакомьтесь с https://developer.mozilla.org/ru-RU/docs/Web/JavaScript/Reference/Global_Objects/TypedArray для более детальной информации.
    • Внедрены новые стрелочные функции, ознакомьтесь с https://developer.mozilla.org/ru-RU/docs/Web/JavaScript/Reference/Functions/Arrow_functions для более детальной информации.
    • Полный список изменений доступен по https://github.com/v8/v8-git-mirror/blob/4.5.103/ChangeLog

© Habrahabr.ru