Hacker News new | past | comments | ask | show | jobs | submit login

I don't know about JVM, but the concurrency features of Go are amazing, far better than multi-threading in .NET IMO. If an app can benefit from concurrency (and major apps usually can), Go may be a better choice than .NET.



Better than asynchronous APIs, low level threading, thread pools, tasks, TPL, async/await in .NET?

Or better than Akka, java.util.concorrent?

I am not convinced, even after doing some small applications in Go.


YMMV. With a relatively small bit of concurrency code, for example, I can poll 100 RSS feeds virtually simultaneously; e.g. if the maximum return time of the remote sites is 5 seconds the whole thing finishes in < 6 seconds. If I wanted to bump that up to 1K or 10K feeds I could do that by changing only a constant, because the goroutine for each feed takes only 4K of memory (versus 1MB per thread in C# by default). There may be a way to achieve the same functionality in .NET but having done some multi-threading C# code I doubt it would be as straightforward.


Have you ever used tasks or the TPL?


No, that's the first I heard of it; I looked it up. Thanks, I'll keep this mind if I work on C# again.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: