Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm not saying their implementation isn't good, it is good. And probably message-passing is the right concurrency primitive to expose at a language level for people who want to take advantage of multi-core machines running concurrent code.

I'm not downplaying anything; I'm expressing merely that with a title like "Goroutines: The concurrency model we all..." makes it sounds like go invented something new, but afaict, they're just a well-engineered implemention of already well-understood concurrency principles.



100%, as I was reading the article I was remembering the different types of concurrency mechanisms I've used and I think it's helpful to have something like goroutines as a first-class language feature but it's not new in any way.

When it comes to concurrency I think it's good to go through the curriculum:

- main loop + interrupt handler

- processes (fork)

- multi-core concerns

- threads (now is a good time to learn about mutex, semaphore, critical section)

- lightweight threads (fiber, coroutines, green threads): learn how they are different

- async/await statemachines written by the compiler

Ok, now we have the background info to make wise choices and call things by their generalized names to avoid holy wars.




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

Search: