Node.js employees and members of the Node.js Foundation are proud to present the 4.0.0 version of the product. This release includes countless hours of collaboration between Node.js and io.js projects, which were successfully combined into one code base. The Node.js project is managed by a team of 44 people, 15 of whom form a Technical Steering Committee (TSC). In addition, more than 100 participants were added to the list of people able to influence the development of the kernel, compared with the number of participants in version v0.12.7.
Node.js v4.0.0 contains V8 v4.5, this is the same version of V8 that comes with the Chrome web browser today. This brings with it a lot of bonuses for Node.js users, the most important of which is support for the
ES6 standard, which is enabled by default, including block scope, classes, typed arrays (Node's
Buffer now works on top of
Uint8Array ), generators, Promises, Symbols , string patterns, collections (Map, Set, and so on) and, a new feature for V8 v4.5 - arrow functions.
Last year, thanks to donations from companies such as Rackspace, DigitalOcean, Scaleway, miniNodes, Voxer, Joyent, CloudFlare, ARM Holdings, as well as individuals from the community, we have created a wonderful test cluster that includes an impressive line of Linux systems , OS X, Windows, FreeBSD and SmartOS. As an innovation in Node.js, we added support for the first generation of processors on the ARM architecture.
Node.js v4 also brings plans for
long-term (LTS) support and regular releases. The version naming system will now adhere to the
SemVer recommendations, which is expected to introduce an increase in the number of minor versions and patches in the coming weeks to correct errors and add new features. What we will not do in the 4.x development branch is the addition of incompatible changes.
')
Nevertheless, we will strive to release a version with long-term support in October 2015. At the same time, we are starting development of the 5.x branch, which should be aimed at releasing stable releases of the new version of Node.js. This branch will most likely contain the latest versions of V8 and sets of critical changes, without which it would be possible to do in 4th version. Support for 4.x branches within the LTS will be carried out within 18 months, with an emphasis on stability and security, without adding unnecessary functionality. In addition, at the end of this period, the 4.x branch will be maintained for another 12 months, during which critical errors and security problems will be corrected.
In parallel, we will release new stable releases at intervals of 6 months, one in October and one in April, each year. Stable branches will be produced regularly and will continue to grow. Minor changes and patches will be issued for them every one to two weeks. Every second stable release will continue to exist within the LTS, until the end of next October. This means that we will serve several versions of LST at the same time, with a total support period of each up to 30 months (LTS + service). We believe that the stability and long-term support of LTS releases will provide an opportunity
to stay on top of JavaScript technologies and at the same time
provide stability and security , which is the basis for Enterprise users, which proudly can say about Node.js as the core technology. Some of them are already
members of the Node.js Foundation .
As always, with the launch of the new major release, we do not expect a smooth transition to Node.js fourth version. It will take time to adapt, especially in the field of compiled add-ons, taking into account the new version of V8 (a hint of
NAN for our official solution for backward compatibility). Fortunately, a series of releases of io.js version 3.x has made it possible, for more, to prepare my code for the release of Node.js 4.x version.
The initial list of exceptions backward compatibility between versions 0.12 and 4 can be found on
the LTS release Wiki page . In the near future, we will continue to fill
our Wiki to display the most complete documentation and list of changes that you should be aware of.
Please report all problems found in our new home on GitHub
https://github.com/nodejs/node and join the growing number of people that help us develop the core!
Noticeable changes
This is a list of changes since the latest version of io.js v3.3.0. Please see the list of notable changes for versions v3.x, v2.x and v1.x collected in the complete list of changes, for an understanding of the full list of changes compared to versions 0.12.x Please note that these are only some changes in the v3 branch .x, as well as review the list of all incompatible features, in order to avoid any compatibility issues with Node.js and io.js projects.
- Child_process: ChildProcess.prototype.send () and process.send () work asynchronously on all platforms, so an optional callback parameter was entered that will be called after the message is sent, i.e. .send (message [, sendHandle] [, callback]) (Ben Noordhuis) # 2620 .
- node: Renaming the “io.js” code to “Node.js” (cjihrig) # 2367 .
- node-gyp: This release includes an updated version of node-gyp that works with all versions of Node.js and io.js including nightly and candidate release builds. Starting with io.js v3 and Node.js v4 and beyond, you will only need to download headers, not all code, as was previously (Rod Vagg) # 2700
- npm: Upgrade to version 2.14.2 from 2.13.3, including security updates, see https://github.com/npm/npm/releases/tag/v2.14.2 for a more detailed description, (Kat Marchán) # 2696 .
- timers: Improved performance of timers after porting from version 0.12, plus minor fixes (Jeremiah Senkpiel) # 2540, (Julien Gilli) nodejs / node-v0.x-archive # 8751 nodejs / node-v0.x-archive # 8905
- util: util.is * () is marked obsolete, starting with the message about obsolescence in the documentation for this release, users are advised to look for more reliable alternatives in the npm repository, (Sakthipriyan Vairamani) # 2447 .
- v8: Updated version to 4.5.103.30 with 4.4.63.30 (Ali Ijaz Sheikh) # 2632 .
- Implemented new prototype methods for TypedArray: copyWithin (), every (), fill (), filter (), find (), findIndex (), forEach (), indexOf (), join (), lastIndexOf (), map () , reduce (), reduceRight (), reverse (), slice (), some (), sort (). Check out https://developer.mozilla.org/ru-RU/docs/Web/JavaScript/Reference/Global_Objects/TypedArray for more detailed information.
- Introduced new methods TypedArray.from () and TypedArray.of () Check out https://developer.mozilla.org/ru-RU/docs/Web/JavaScript/Reference/Global_Objects/TypedArray for more detailed information.
- New arrow functions have been introduced, see https://developer.mozilla.org/ru-RU/docs/Web/JavaScript/Reference/Functions/Arrow_functions for more detailed information.
- The full list of changes is available at https://github.com/v8/v8git-mirror/blob/4.5.103/ChangeLog