Comment by frollogaston

6 months ago

That's what I meant by unreadable code. You have to twist everything to work with whatever async framework.

Have you ever had to write down channel sending dependencies graph?

I had to, to make sense of whatever was going on.

  • If this is an app backend, you aren't dealing with Golang channels directly. Your webserver or whatever it is spawns a new goroutine (greenthread) for each incoming request, then you use blocking calls without worrying. Looks similar in JS but the event loop handles it instead, and you async/await stuff. JS webpages and app frontends also don't worry about this.

    If this is systems programming, yeah you're reasoning about channels, but that's mostly the same in any language. Golang has slightly nicer support for that if anything.