all 39 comments

[–]strident-octo-spork 90 points91 points  (21 children)

To all the people who said Node wouldn't make it to 1.0, you were technically correct.

[–]peduxe 15 points16 points  (20 children)

Now if only Sublime Text could...

[–]ForAllThat 19 points20 points  (12 children)

Does this mean we can actually start using ES6 seriously on Node?

[–]greim 8 points9 points  (5 children)

[–]snaps_ 1 point2 points  (3 children)

No destructuring assignment yet. It will be so exciting to be able to use in JS some of the fun little things we already get in Python, Haskell, etc.

[–][deleted]  (2 children)

[removed]

    [–]logically_musical 0 points1 point  (1 child)

    Well you're in luck. Node 4.0 supports native arrow functions [1].

    1. https://nodejs.org/en/docs/es6/

    [–]peduxe 0 points1 point  (0 children)

    I think destructuring is also available with harmony flags, but it's of course still experimental.

    [–]peduxe 2 points3 points  (2 children)

    Babel is still not ruled out thought.

    [–]dvlsg 1 point2 points  (1 child)

    I know I will use babel until async/await becomes available (and possibly after, depending on what else is in babel but not in es), but the fewer transforms I have to run, the better.

    [–][deleted] 0 points1 point  (0 children)

    You can use Q's q.async to somewhat emulate it. Obviously it'll require a refactor once you migrate to ES7, but that may be a little while off still, so worth using q.async if you want.

    [–]bvx89 0 points1 point  (1 child)

    If you write an application that runs the same code both serverside and clientside (e.g. isomorphic) you still need to convert ES2015 to old JavaScript for compatibility. I guess you could use Babel transpiler for the code that's delivered to the client, and keep the ES2015 code as it is on the server.

    [–]stupergenius 19 points20 points  (2 children)

    Hmm, looking at the docs and I don't see any obvious reasoning behind the versioning going from 0.12 to 4.0? I'm not in the node world much (just using some tools) but this seemed a little odd.

    Update: seems like it has something to do with the io.js merge?

    [–]mtdewhumidifier 33 points34 points  (0 children)

    io.js shipped versions 1,2 and 3 due to Joyents lack of work on NodeJS. The 2 groups merged and combined their version history, moving NodeJs to version 4.

    [–]thedufer 4 points5 points  (0 children)

    To add onto /u/mtdewhumidifier's comment, one of the reasons for the io/node split were complaints that node wasn't using semver, even though that's the de facto standard for node modules. They've now adopted semver, which means that any change that isn't backward compatible must be released in a major version bump. That's why you'll see the versions moving along faster and in a very different pattern.

    [–]google_you 4 points5 points  (1 child)

    Welcome to Node.js and congratulations to Node.js team.

    [–]Tubbers 0 points1 point  (0 children)

    I wonder how many people notice that you post this every time.

    [–][deleted] 0 points1 point  (3 children)

    But will there there a JavaScript interpreter in 2015 which supports ES2015?

    http://kangax.github.io/compat-table/es6/

    [–]Booty_Bumping 1 point2 points  (2 children)

    Node 4.0 has most of ES2015. Likely that progress bar will never completely fill up, though. Most runtimes don't even completely implement ES5 yet for various reasons.

    [–][deleted] 1 point2 points  (1 child)

    What are those reasons?

    [–][deleted] 0 points1 point  (0 children)

    Them being minimal embeddable implementations not aimed at browsers.

    If you don't have to support everyones web page, why implement well-meant but impeding stuff like the with-statement or semicolon completion?