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

I want to thank Go for popularizing coroutines. Seems like every language now has adopted it and I love that.


Go definitely popularized concurrency for the modern era, but coroutines themselves are ancient tech. Melvin Conway coined the term in 1963 and Simula had them by '67.

It’s also worth noting that the specific 'coroutine' model most languages are adding today (JS, Rust, Python) is based on C#'s async/await.

Go actually rejected that approach in favor of Green Threads (Goroutines, not coroutines), so technically it popularized the alternative to what everyone else is doing.


And green threads were already present in JVM early days, with red threads being the actual OS threads.

Solaris LWP and Windows Fibers were two other examples of OSes providing the infrastructure for a task based programming, although they had some issues.


Only for the newer generation.

Besides the sibling comment, we already knew them from Solo Pascal and Modula-2 among other 1980's languages.

Co-routines were a famous way to simulate paralelism when you only got a single CPU.




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

Search: