News for hackers. Stuff that matters.
Re:Node 8.3.0 released by jnbiche on Thursday August 10, 2017 @10:41AM (#14980157)
> There is no masterplan and no pushback.

I don't think there's a masterplan or some anti-functional conspiracy, but I do think there's pushback. They implemented the feature behind a flag but from what I've read (can't find the reference now), they are not planning to ever release it.

Re:Node 8.3.0 released by coldtea on Thursday August 10, 2017 @10:56AM (#14980336)
Probably looking for this then: https://github.com/tc39/proposal-ptc-syntax/issues/22

But their pushback is for pragmatic reasons, not because they don't like recursion/tail calls.

Re:Node 8.3.0 released by jnbiche on Thursday August 10, 2017 @11:22AM (#14980603)
> But their pushback is for pragmatic reasons

I saw zero reasons given for the failure to implement in that thread (which I had not seen before), other than a brief mention of stack traces (which is quite solvable with a shadow stack). All I saw were several people (including someone involved with the spec) who were bitterly disappointed about the failure to implement. And I forgot that tail call elimination was introduced back in ES5, and yet only JavaScriptCore has implemented it.

Which again leads me to believe that most implementers believe it's just not worth the trouble to them to implement a key feature for functional programming, regardless of how much the users want it (the feedback in this thread is similar to what i've seen elsewhere).

Re:Node 8.3.0 released by apaprocki on Thursday August 10, 2017 @03:47PM (#14983419)
Re:Node 8.3.0 released by mercer on Thursday August 10, 2017 @03:47PM (#14983427)
Could you elaborate? Based on my experience with functional(-style) programming in Clojure and Elixir, tail calls are important enough that, worst case scenario, they might even warrant their own syntax addition (like with Clojure's recur?).

I might be way out of my depth here though; I couldn't quite grok the discussion in your link. Is there's a way perhaps you could 'ELI5' why it's pragmatic to ignore this issue?

Re:Node 8.3.0 released by coldtea on Friday August 11, 2017 @07:33AM (#14988553)
It's pragmatic because adding proper tail calls in the JS engines is difficult and raises several issues (lost stack frames, memory guarantees, etc.) but we were able to survive 20+ years without having them in JS, so it's not like they are essential.
Re:Node 8.3.0 released by jnbiche on Friday August 11, 2017 @02:16PM (#14992710)
> we were able to survive 20+ years without having them in JS, so it's not like they are essential.

And voila the attitude I was referring to, it comes out. Recursion is pretty damn essential to functional programming, and like it or not that's the way JS is headed.

Re:Node 8.3.0 released by coldtea on Sunday August 13, 2017 @11:29AM (#15003280)
>and like it or not that's the way JS is headed.

Well, like it or not, recursion did not make it to ES6/ES7.

Re:Node 8.3.0 released by jnbiche on Monday August 14, 2017 @08:05AM (#15008058)
It did make it to ES6, but the engines failed to implement the spec.