Disclaimer: despite all my praises for Go, I don't actually use it for real problems. Would I like to use Go? Definitely! Is there a problem that I'm trying to solve that needs Go? Certainly not. In many cases I'd objectively pick Rust over Go, but when it comes to threading primitives, Go is somewhat unmatched.
> pick my battles
Exactly my point. A good coder will choose the tool that expresses the solution correctly. C is a very good choice, it always will be, there are sometimes better choices. Ultimately it seems as though we are in agreement; cheers!
Re:Go’s march to low-latency GC
by DanWaterworth on Friday July 08, 2016 @03:27AM
(#12054044)
Go's threading primitives are not unmatched. You can do the same in Rust [1], but the gold standard in my eyes is STM in Haskell which allows you to block on arbitrary conditions.
[1] https://doc.rust-lang.org/std/macro.select!.html#examples
Re:Go’s march to low-latency GC
by rantanplan on Wednesday July 06, 2016 @05:52PM
(#12046119)
OT: why is an IRC server I/O bound? That really piqued my interest.
Re:Go’s march to low-latency GC
by Terribledactyl on Wednesday July 06, 2016 @06:58PM
(#12046417)
I've never made an IRC server but I share a similar feel for I/O (Network) being the limiting factor. Have one user write a message and then you need to send out potentially hundreds of thousands of messages. (At twitch scale)
The actual CPU computation going on per event is minimal (process maybe a few kb of text), and if we're only dealing with text, probably not memory (capacity or throughput) bound and certainly not disk bound.
My experience means I know to pick my battles.