Live data from Hacker News

Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

news.ycombinator.com

41–50 of 62 posts

Re: Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

#41
As someone who writes ALOT of vanilla JS and doesn't really get into the new fangled frameworks, tools, transpiling..

Two things: template strings and arrow functions. Async is life-changing, but lack of support - can't use it yet.. Greatest feature since XMLHttpRequest IMO.

Re: Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

#42
I'll be waiting till async/await (ES7 maybe?) is available natively in browsers and node.js and its error handling story is cleaned up. Right now, in node.js if you're using streams2/3, it's quite the mess to recover gracefully already. Future of exception domains in node.js isn't clear to me either. Also, browsers aren't there yet either (eg. Fetch API error handling and aborting).

Re: Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

#44

My code runs on Node >6.9.1 so it's really a no-brainer. The synthax is clearly superior.

You know what's weird, I don't like the arrow functions in es6. And, I'm a coffeescript guy. I just don't like that the syntax is conditional on so many different things. The number of parameters, line length, etc...

I just wrote this function and used `function` rather than `=>` because I couldn't get the syntax right using an arrow function:

    const showTable = ["email", "phone", "website"].reduce(
      function (previous, channel) { return previous || !!institution[channel] && !/^\s*$/.test(institution[channel]); },
      false
    );
Of course, the inconsistencies are what I don't like about js in general.

Re: Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

#46

My code runs on Node >6.9.1 so it's really a no-brainer. The synthax is clearly superior.

You know what's weird, I don't like the arrow functions in es6. And, I'm a coffeescript guy. I just don't like that the syntax is conditional on so many different things. The number of parameters, line length, etc... I just wrote this function and used `function` rather than `=>` because I couldn't get the syntax right using an arrow function: const showTable = ["email", "phone", "website"].reduce( function (previous…

It's not that hard...

    ["email", "phone", "website"].reduce(
      (previous, channel) => previous || !!institution[channel] && !/^\s*$/.test(institution[channel]),
      false
    );
But I'd prefer the more readable:

    const hasNoEmail = /^\s*$/.test(institution.email || '');
    const hasNoPhone = /^\s*$/.test(institution.phone || '');
    const hasNoWebsite = /^\s*$/.test(institution.website || '');
    const hasAny = !(hasNoEmail && hasNoPhone && hasNoWebsite);

Re: Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

#47

My code runs on Node >6.9.1 so it's really a no-brainer. The synthax is clearly superior.

You know what's weird, I don't like the arrow functions in es6. And, I'm a coffeescript guy. I just don't like that the syntax is conditional on so many different things. The number of parameters, line length, etc... I just wrote this function and used `function` rather than `=>` because I couldn't get the syntax right using an arrow function: const showTable = ["email", "phone", "website"].reduce( function (previous…

Well for one you're missing a closing } in that function. But you could just do

  const showTable = ["email", "phone","website"]
    .reduce((previous, channel) => { return previous || !!institution[channel] &&    !/^\s*$/.test(institution[channel])
  }), false)

You can always just replace

  function() {
with

  () => {
and the only difference between the two would be binding this. Or you could do this:

  const showsTable = ["email", "phone", "website"]
    .reduce((previous, channel) => previous || !!institution[channel] && !/^\s*$/.test(institution[channel]), false)

Re: Ask HN: If you targetting ES6 by default, how did you rationalize that choice?

#50

My code runs on Node >6.9.1 so it's really a no-brainer. The synthax is clearly superior.

You know what's weird, I don't like the arrow functions in es6. And, I'm a coffeescript guy. I just don't like that the syntax is conditional on so many different things. The number of parameters, line length, etc... I just wrote this function and used `function` rather than `=>` because I couldn't get the syntax right using an arrow function: const showTable = ["email", "phone", "website"].reduce( function (previous…

FWIW, Array.prototype.some() would probably be more idiomatic here.
Post reply on HN