DEV Community

Discussion on: Arrow Functions

 
joelnet profile image
JavaScript Joel

you are adding (all be it small) a barrier of readability

Ahh see maybe it's because I actually disagree with this in the article. That is why I suggested the content was dated. Because people weren't used to arrow functions. But they are so common place now. They are easily read by most people. And I find.them to be more readable than function. So that suggests "readability" is subjective.

The readability is also trending towards arrows and away from functions... So over time more and more people will prefer arrows.

Examples like:

list.map(function(item) { return item * 2})

list.map(item => item * 2)

To me, the latter is much easier to read. But I know readability is subjective. So I don't think anyone can make blanket statements saying one is "better" than the other. Because it depends on the person.

I can however tell you that the readability is trending towards arrows and over more time function will before less preferred.

Thread Thread
 
polymorphicprod profile image
Josh Chernoff

In your example you are displaying a typical subroutine thus this does make sense but if you are making everything a subroutine than you are not conveying the boundaries of you application very well are you?

Thread Thread
 
joelnet profile image
JavaScript Joel • Edited

People often use the readability argument to argue against arrow functions. Not able to see what is and is not a function. That is just a matter of organization.

Put constants in one place, put functions in another. You should do this with or without arrow functions.

const two = 2
const three = 3

const double = x => x * 2
const tripple = x => x * 3

I have no problems seeing what is and what is not a function.

In the case of currying... I find the function keyword to be much harder to read.

function add(x) {
  return function(y) {
    return x + y
  }
}

// vs

const add = x => y => x + y
Thread Thread
 
joelnet profile image
JavaScript Joel

conveying the boundaries of you application

I'm not fully understanding this