HN Hall of Fame Weekly email

Notes on structured concurrency, or: Go statement considered harmful

Screenshot of vorpus.org captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 8 calendar years, with breakout response in 3 of them.

submissions
19
submitters
19
observed span
2018–2026
peak thread · 230 comments
301 pts
latest 20+ return · 2022-07-02
157 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

What. This article proposes a "nursery", which is just a wrapped sync.WaitGroup/pthread_join/futures::future::join_all/a reactor that waits for all tasks to terminate/etc. It then uses an exception-like model for error propagation to "solve" error handling (which is fairly easy to handle with a channel). The construct is a decently usable, already applied tool to handle a set of problems, but the article takes the issue way out of proportions and overhypes the proprosed solution. The "with" example for benefits to…

There's one key difference between Go and all the other examples: an uncaught panic in any goroutine, not just the main goroutine, crashes the app. Often your main goroutine will just be starting other goroutines, in a multiple-services-one-process architecture, and it doesn't care whether they succeed or not, and its code need not be aware of whether they're critical. If they are, they should panic and crash the program. Just like a main function that crashes. Doing things with the…

orisho·176-point thread·

Can the discussions here try to stay away from Go bashing. This post is not about Go. It's about Structured concurrency VS background tasks. There's many interesting discussions one can have about the latter but the former turns into toxicity. With that said. The Rust teams are very interestes in structured concurrency at the moment. Rust 1.63 is going to get scoped threads, which is structured concurrency for threading. Myself and others have also been looking into structured async, albeit…

Seven years later, and the sort of fan out/in behavior proposed here is implemented all the time where necessary but not considered a concurrency primitive. I think I remain more interested in the erlang/elixir process approach to concurrency. Practically that seems so much more powerful than anything else available today.

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
3

100+ points or 50+ comments

Total points
664

reference only — not used in Hall rules or ranking

Total comments
437

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2018-04-25Notes on structured concurrency, or: Go statement considered harmfulFirst breakout · Best threadm0meni301230
2019-07-28Notes on structured concurrency, or: Go statement considered harmfulgyre00710
2019-07-30Notes on structured concurrency, or: Go statement considered harmfulsigna1120
2019-08-07Notes on structured concurrency, or: Go statement considered harmfulwheresvic320
2019-09-20Notes on structured concurrency, or: Go statement considered harmful (2018)theshrike7920
2020-03-06Notes on structured concurrency, or: Go statement considered harmful (2018)_ZeD_10
2020-04-26Notes on structured concurrency, or: Go statement considered harmfuldilap10
2020-05-24Notes on structured concurrency, or: Go statement considered harmful (2018)BerislavLopac20
2020-08-20Notes on structured concurrency, or: Go statement considered harmful – njs blogtimhigins20
2021-01-31Notes on structured concurrency, or: Go statement considered harmful (2018)illuminated20
2021-03-19Go Statement Considered Harmful (2018)Hall inductionceleritascelery17682
2021-04-01Async that guarantees the function is finishedLavinski10
2022-07-02Notes on structured concurrency, or: Go statement considered harmful (2018)Latest 20+ point returnstopachka157122
2023-07-25Notes on structured concurrency, or: Go statement considered harmful 2018wolfspaw11
2025-03-19Notes on structured concurrency, or: Go statement considered harmful (2018)HAMSHAMA61
2025-12-10Notes on structured concurrency, or: Go statement considered harmfulingve20
2026-02-02Notes on structured concurrency, or: Go statement considered harmfulredman2510
2026-04-27Notes on structured concurrency, or: Go statement considered harmful (2018)shadow2820
2026-05-12Notes on structured concurrency, or: Go statement considered harmful (2018)masfuerte21