What Is New in Node.js 4?
| Category | Change |
|---|---|
| New Features | V8 4.5 -- ES6: arrow functions, classes, typed arrays, template strings, generators, Promises, Symbols, Map/Set |
| New Features | io.js merged back into Node.js -- first unified release |
| New Features | Long-Term Support (LTS) plan announced |
| New Features | ARM (ARMv6, ARMv7, ARMv8) first-class support |
| Improvements | npm upgraded to 2.14.2 |
| Improvements | child_process.send() now async with optional callback |
| Deprecated | util.is*() functions (isArray, isString, etc.) |
The Merger of io.js and Node.js -- A New Chapter
Node.js 4 is the result of merging the io.js project back into Node.js under the io.js Technical Steering Committee. io.js was a community-led fork started in 2014 to accelerate v8 updates and open governance. The merger under the Node.js Foundation united both communities under a single, faster-moving release cadence.
This release ships V8 4.5 -- bringing a massive ES6 feature set natively. Before this, developers depended on Babel or CoffeeScript for class syntax, arrow functions, and template literals.
ES6 in Production -- Arrow Functions, Classes, Promises
Node.js 4 is the first release where writing modern JavaScript without a transpiler became viable for production server code. Key ES6 features enabled by default:
// Arrow functions
const add = (a, b) => a + b;
// Classes
class EventEmitter {
constructor() { this.events = {}; }
on(name, fn) { (this.events[name] = this.events[name] || []).push(fn); }
}
// Template literals
const msg = `Hello, ${user.name}! You have ${count} messages.`;
// Generators
function* range(start, end) {
for (let i = start; i < end; i++) yield i;
}
// Promises
fetch('/api/data')
.then(res => res.json())
.catch(console.error);
Long-Term Support (LTS) Plan
Node.js 4 introduces the LTS lifecycle model. Even-numbered major versions (4, 6, 8...) become LTS releases, supported for 30 months -- 18 months active + 12 months maintenance. Odd-numbered versions are short-lived Current releases for new feature development.
This gives teams a predictable upgrade path: LTS to LTS, with ample overlap time. Node.js 4 is the first LTS under this model.
ARM Support -- Node.js on IoT and Embedded Devices
Node.js 4 adds first-class ARM support across ARMv6 (Raspberry Pi), ARMv7, and the new 64-bit ARMv8. Prebuilt binaries are available for all three. This unlocks Node.js as a platform for IoT and edge computing devices.
FAQ
Is Node.js 4 an LTS release?
Yes. Node.js 4 (codename "Argon") was the first LTS release under the new lifecycle plan. It reached end-of-life in April 2018.
What is the difference between Node.js 4 and io.js v3?
Node.js 4 is essentially io.js v3 + the Node.js project branding re-unified under the Node.js Foundation. The V8 version is similar (4.5 in Node.js 4 vs 4.4 in io.js v3) with incremental fixes.
Can I use ES6 classes as drop-in replacements for prototype-based patterns?
Yes. ES6 classes are syntactic sugar over the prototype chain. class Foo {} and function Foo() { Foo.prototype... } produce equivalent objects. You can mix class and prototype syntax within a codebase.
Are Promises in Node.js 4 native or polyfilled?
Native. V8 4.5 ships a spec-compliant native Promise implementation. No polyfill needed.
Does util.is*() deprecation mean I need to change my code immediately?
The functions still work in v4 -- they are documented as deprecated. They were removed in later versions. Replace them with explicit type checks: Array.isArray(x), typeof x === 'string', etc.