Вышла в свет новая версия Node.js v4.0.0

https://new.nodejs.org/en/blog/release/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й версии. Поддержка 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.

Поделиться публикацией
Комментарии 33
    +1
    Урааа, снова портировать все расширения, использующие nan :) На самом деле отлично, хорошо, надеюсь, что кодовая база скоро обновится.
      +2
      Еще одна причина обновиться
      image
        +1
        А вот по памяти. До:
        image
        После:
        image
          +7
          ну ладно, разные линии соответствуют разным версиям, верно? а что такое ДО-ПОСЛЕ? после чего? и что там по вертикальной оси? потребленная память в Кб?
          +26
          Извиняюсь за дилетантский вопрос, но не могли бы вы расшифровать что эти графики означают?
            0
            я тоже ничего не понял. Что за K в пингах?
          +2
          Это приносит с собой множество бонусов..., наиболее важное из которых, это поддержка ES6 стандарта, которые включены по умолчания, включая видимость блоков,… и, новая для V8 v4.5, стрелочные функции.

          Вы бы хоть сами прочитали статью после гуглопереводчика, прежде чем ее публиковать. Не стал отправлять в личку, потому что тут каждое второе предложение такое.
            0
            Спасибо за уточнение. Поправил.
              +2
              «block scoping» превратилось в «видимость блоков», «Node's Buffer is now backed by Uint8Array» в «Node's Buffer теперь работает с Uint8Array», «plus minor fixes» в «плюс минорные изменения», «beginning with deprecation warnings in the documentation for this release» в «начиная с сообщении об устаревании, описными в документации (шта?)».

              Уберите этот перевод, пожалуйста, ну чёрт возьми. Такая хорошая новость и такой убогий перевод.
                +1
                Буду рад, если вы окажете посильную помощь в его улучшении.
                  +7
                  «Block scoping» — это «блочная область видимости», речь идёт об объявлении переменных через let и const.

                  Buffer теперь, по сути — просто обертка над Uint8Array, фразу правильно перевести как «Buffer теперь работает поверх Uint8Array»

                  Plus minor fixes — это «плюс минорные исправления».

                  «beginning with deprecation warnings in the documentation for this release» — ладно, ещё норм, просто «начиная с сообщения об устаревании в документации к этому релизу».

                  Дальше ещё повычитываю и напишу. Но вообще мне непонятно, зачем вы берётесь переводить техническую статью, не имея, во-первых, никакого понимания того, о чём в ней вообще говорится, во-вторых — не имея желания это понимание приобрести, и в третьих — даже малейшей старательности, заключающейся в том, чтобы прогнать свой перевод через MS Word и поправить хотя бы грамматические ошибки.
                    0
                    Спасибо огромное за уточнения. За перевод взялся, так как до этого его не было, а новость такого формата, по моему мнению, не должна оставаться незамеченной. Плюс, это хороший шанс попрактиковаться в искусстве перевода, так как подобной практики у меня прежде не было.
            +4
            Есть ли какой-нибудь changelog, подробно раскрывающий разницу между 0.12.4 и 4.0.0 и, прежде всего, перечисляющий радикальные изменения (то есть отвечающий на вопрос «что отвалится при переходе?»).

            Я читал об изменениях, упомянутых в нескольких подразделах «Notable changes» по адресу https://github.com/nodejs/node/blob/master/CHANGELOG.md, однако у меня нет ещё уверенности в том, что чтива этого будет достаточно.
              +1
              Думаю вот эта Wiki страница вам поможет
                0
                А тесты просто на 4.0 прогнать не вариант?
                  +8
                  Некоторые люди...
                    0
                    Прогоняю; результаты подчас неприятны, так что хотелось бы поскорее доискаться первопричин такой перемены в поведении. Оттого и задаю такой вопрос.
                      0
                      Из основного — изменили Buffer, там много поломок BC, V8 4.5, nan пока не допилили.
                  0
                  «Сообщество Node.js проекта»
                  Поправьте, пожалуйста.
                    0
                    Спасибо. Исправлено.
                    +2
                    А почему после 0.12 сразу 4?
                      –4
                      Видимо решили для перехода с целому исчислению мажорных версий, сложить все цифры и инкриминировать :)
                        +7
                        После отделения от Node.js форка Io.js, форк ввел свою систему нумерации, и таким образом добрался до версии 3.3.0. После воссоединения с форком, было принято решение начать новую мажорную версию и перейти к нумерации версий при помощи методологии Semantic Versioning
                          0
                          Да да, это в ализаровой статье на гиктаймсе упоминалось, что перешли на семантическое версионирование.
                            0
                            Там было «нумерацию версий привели в соответствие со стандартом» что, без указания того, с каким стандартом вызывает некое недоумение ;-)
                          +4
                          0.12.7 -> 1.0.0 -> 1.0.1 -> 1.0.2 -> 1.0.3 -> 1.0.4 -> 1.1.0 -> 1.2.0 -> 1.3.0 -> 1.4.1 -> 1.4.2 -> 1.4.3 -> 1.5.0 -> 1.5.1 -> 1.6.0 -> 1.6.1 -> 1.6.2 -> 1.6.3 -> 1.6.4 -> 1.7.1 -> 1.8.1 -> 1.8.2 -> 1.8.3 -> 1.8.4 -> 2.0.0 -> 2.0.1 -> 2.0.2 -> 2.1.0 -> 2.2.0 -> 2.2.1 -> 2.3.0 -> 2.3.1 -> 2.3.2 -> 2.3.3 -> 2.3.4 -> 2.4.0 -> 2.5.0 -> 3.0.0 -> 3.1.0 -> 3.2.0 -> 3.3.0 -> 4.0.0

                          v4.0.0 это мердж io.js v4.0.0 обратно в NodeJS.

                          Отсюда: news.ycombinator.com/item?id=10188126
                          –4
                          Вышла в свет Node.js v4.0.0
                          А как вы определяете пол у node.js?
                            0
                            <sarcasm> Комментатор_ка подсказал_а. </sarcasm>
                              +2
                              «Вышла в свет новая ВЕРСИЯ». Вот у слова «версия» пол и определили. (если ваш комментарий был до исправленного заголовка, тогда понятная ваша ирония).
                                +1
                                Да, он был до исправления заголовка, но сарказма не было. Просто интересно стало, почему node.js — она. Думал, это из-за того, что иногда node.js называют нодой, но оказалось это про просто опечатка. :)
                                  +1
                                  Ну) можно было бы сказать, мол, Нода — она!
                              +1
                              Я единственное не понял что с проектом iojs будет? Он все исчезнет(слился с nodejs) или продолжает существовать?
                                +2
                                видимо, форкнулись, повеселились и домой

                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                              Самое читаемое