HN Hall of Fame Weekly email

Pipe Operator (|>) For JavaScript

github.com Reference Standards & specifications Software engineering Candidate
Screenshot of github.com captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 6 calendar years, with breakout response in 2 of them.

submissions
13
submitters
13
observed span
2017–2026
peak thread · 426 comments
309 pts
latest 20+ return · 2023-01-20
309 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

Is this: Object.keys(envars) .map(envar => `${envar}=${envars[envar]}`) .join(' ') |> `$ ${%}` |> chalk.dim(%, 'node', args.join(' ')) |> console.log(%); Really better than: console.log(chalk.dim( `$ ${Object.keys(envars) .map(envar => `${envar}=${envars[envar]}`) .join(' ') }`, 'node', args.join(' ') )); That's the real-world example they have (I reformatted the second one slightly, because it looks better to me). Neither seems very good to me, and the |> version doesn't really seem "less bad". Can also write it…

arp242·309-point thread·

I guess I'll just throw myself to the wolves here by saying that I'm generally in favor of a pipe operator, I believe avoiding unnecessary temporary variables is a very valuable thing for the reasonability of code, and that while I'd prefer F# style pipes plus a clean partial application syntax/approach, I can certainly live with the Hack style pipes and agree that F# would be very unidiomatic in the absence of better partial application. Furthermore, I'm continually astounded by…

The advancement of this proposal has been stalled for many years because there were two competing proposals. The winning proposal was with the Hack style pipelines, which won over the F# style pipelines. This decision is highly controversial as you can see if you look at the issue threads. One issue thread[1] got over 250 comments before it was closed as too heated. In my opinion the wrong proposal was advanced. And I find it very curios why this was…

It looks like they finally choose between smart and dumb. It took around 6(?) years, but hopefully this marks another step to actually getting it in JS engines.

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
490

reference only — not used in Hall rules or ranking

Total comments
608

reference only — not used in Hall rules or ranking

Every submission