
Node.js v4 Release Timeline - antouank
https://github.com/nodejs/node/issues/2522
======
rakk
Most excited about v8 4.5. Native support for arrow functions and stuff like
Array.from really makes the dev experience feel so much smoother.

~~~
seiji
I may be out of the loop here, but wasn't the big benefit of JavaScript
everywhere that it's the _same_ JavaScript everywhere?

Does it matter if server-side is JavaScript Next Gen and browsers lag by a few
years of features?

Too many more iterations of this and you'll be back to two programming
languages again and web developers heads will explode from having to learn
_two_ things instead of _one_ things.

~~~
rakk
Chrome (logically) already supports features of the new JS spec that 'only
now' get put into node. With automatic updates for browser being the trend
currently I also think that it is now easier to keep the server and browser
support for JS in sync.

~~~
mattkrea
Not necessarily. I don't think the v8 team really consider the Node project so
breaking changes in v8 take some time to get merged into Node/io.js. This is
the reason that arrow functions are only shipping now when v8 marked them
complete a while back. AFAIK Node is somewhere around 3+ months behind Chrome.

~~~
ofrobots
This is not really accurate. Arrow functions shipped in Chrome on Tuesday (Sep
1) with Chrome 45 (V8 4.5).

~~~
mattkrea
Gotcha. I guess marking them "shipped" just puts them into canary? That was
done a while back.

[https://code.google.com/p/v8/issues/detail?id=2700](https://code.google.com/p/v8/issues/detail?id=2700)

~~~
Arnavion
V8 has had arrow functions for a long time, but until recently they were not
fully spec compliant. That is also why iojs put them behind a flag (separate
from the flag that enabled stable harmony features).

------
atestu
On nodejs.org, it says "Current Version: v0.12.7". Can someone explain why
this discussion is about "v4"? I'm missing something…

~~~
jerrysievert
node.js got forked into io.js. io.js made a lot of improvements and changes,
while trying to reconcile the fork and the reasons why it occurred. those have
been reconciled.

io.js had many contributors and changes, starting at 1.0, they are now on 3.0.
4.0 is the full reconciliation with node.js, as part of the linux foundation.

~~~
WorldMaker
It's also useful to note that io.js moved fasted in version numbering because
they switched to a more semver versioning pattern, whereas Node had been using
something a lot more awkward and rather more confusing. It looks like a
benefit to the 4.0 jump is that Node will be using semver moving forward.

------
Arnavion
If you're hoping to use native V8 Promises, beware using them with other
promise libraries / custom thenables because of
[https://code.google.com/p/v8/issues/detail?id=4162](https://code.google.com/p/v8/issues/detail?id=4162)
(more detail and test case in [https://github.com/zloirock/core-
js/issues/78](https://github.com/zloirock/core-js/issues/78) )

------
timdorr
One issue to go:
[https://github.com/nodejs/node/issues/2516](https://github.com/nodejs/node/issues/2516)

A .bat file is holding up the whole thing!

~~~
jessaustin
rvagg, in a comment on cited issue:

 _FYI this isn 't holding up release ("A .bat file is holding up the whole
thing!"—hackernews), it should be completed by recent commits to core, I'm
leaving this open as a reminder to confirm that it's working as expected in
the 4.0 RC builds._

------
Killswitch
I've been waiting for this since io.js was announced.

------
netcraft
So excited this is finally happening. I enjoy every bit of node I get to
write, really excited for the updated features. Babel has taken a lot of the
edge off, but I dont want to pull babel in for every script.

~~~
jestar_jokin
I'm curious, what is your development background, and what do you enjoy most
about Node.js?

I come from a Java background, but have been working exclusively with Node.js
for the last eight months. Everything I write, I can't help thinking things
like "this problem has already been solved in Java many times over", and "this
would be safer in a statically typed language", and "this would be faster to
write in anything else" (though this is more a reflection on my choice of
libs).

~~~
spion
With TypeScript [1] you can get the best of both worlds: statically checked
code with tool-assisted refactoring plus the ability to drop down to JS when
the type system doesn't support what you want to do. (Of course, you'll now
need to be careful about it and try to isolate the dynamic code from the rest
of the system and present a static facade to it)

[1]: [http://www.typescriptlang.org/](http://www.typescriptlang.org/)

~~~
jestar_jokin
I've thought that if you're going to go the route of compiling to JS, you
might as well go to a higher level of abstraction and use something like
PureScript, Haxe, or any of the 100 other languages that compile to JS. Of
course, interop then becomes a problem.

~~~
spion
Thats precisely why I suggest TypeScript or Facebook's flow, as interop is a
non-issue. They're both just ES6 + optional types.

The trouble with PureScript is that its different enough to have a different
cost model (in terms of performance) thanks to the pervasive closure
allocations resulting from currying as well as the typeclass dictionaries.
Though I'm sure that once the compiler matures and those costs are eliminated,
it would be the best choice.

There is also TypeScript's tooling - while the language is less safe, the
language service tools are a lot more advanced than PureScript's (I can't say
if the same applies for Haxe though)

------
stephenr
So it seems this is v4 because io.js got to v3 in it's short lifetime.

Is Chrome somehow setting the pace for version numbers? We don't have
major.minor.path. Semver is pointless.

A version is an integer, and every change is a new version?

How long until we see Uint32 overflows on a version number?

~~~
saghul
io.js does follow semver, that's why it's at 3.x, because certain changes
required the major version bump.

Node v4 will be the first Node to follow semver.

I get that you don't like Chrome style versioning, but that's not what's going
on with Node.

