4 ms·
Can you say a little more, or provide pointers to resources that you find credible, about "The 'goroutine' and 'channel' thing turned out to be less useful for
by jholman 10y ago
Can you say a little more, or provide pointers to resources that you find credible, about "The 'goroutine' and 'channel' thing turned out to be less useful for general concurrency than expected"? I'm less interested in criticism of Go-the-language, and more in general criticism of CSP, or of CSP-as-implemented-in-Go, whichever you think applies.
- di4na 10y agoYou will have a hard time finding it, because nearly all "mainstream" language use that subset of CSP. I am still working on explaining it well myself, but i am working on trying to write blogpost about it. My main problem with CSP concurrency is simple : synchronisation. That does not work in face of possible errors. Period. The only way to make it work without breaking the laws of physics so much is to bet that there is no hardware errors and that everything stay single threaded. Generally, look at the body of work against RPC and about consensus in distributed systems. Because your computer itself is a distributed system. It just happened that it hide it well for decades, but not anymore. We are even seeing timing problem between cores in some chip.