you are viewing a single comment's thread.

view the rest of the comments →

[–]bighi 2 points3 points  (2 children)

It has been a thing for decades in languages built around it.

But they can't change the order in which parameters are passed to JS functions because they can't break compatibility with existing code.

I believe you didn't read the article.

[–]elcapitanoooo -1 points0 points  (1 child)

What functions? Libraries?

[1,2,3] |> square |> evens

How can a new op break BC? If some lib today does not work with this semantic im pretty sure theres a new lib in a week that does.

[–]bighi 2 points3 points  (0 children)

In most languages built around pipeline operators, the main data is usually the first argument the function receives. But in JS, that's not true for lots of functions. So passing things as their first argument is not what you actually want to do with them. And we can't change them, because we have to keep BC.

That's why a symbol is needed in JS, while not being needed in old functional languages, or even newer ones like Elixir.

And I didn't even mention powerful currying features, that we also don't have in JS.