Composable Concurrency in Perl 6
Why is programming with locks painful? Because they don't compose!
Why do components that spawn OS thread for themselves end up being annoying to use together, because you suddenly have hundreds of threads running? Because they don't compose!
Why does asynchronous programming with callbacks lead to a tangled mess? Because it doesn't compose!
Composability is simply about being able to take solutions to sub-problems, put them together to solve larger problems, and still have a correct program. There probably aren't any silver bullets for concurrent, asynchronous, and parallel programming. It will always be different from synchronous, single-threaded programming. But many traditional approaches to these problems employed in mainstream languages have made it especially hard to do well, by giving programmers non-composing primitives.
Thankfully, things are improving in a lot of languages. And in Perl 6, we have the chance to introduce and promote primitives with good properties from the start. In this session, I'll discuss the work we've done so far on composable concurrency in Perl 6, and illustrate it with code that runs - using multiple cores - today.
Attended by: Salve J. Nilsen (sjn), Anatoliy Dmytriyev (tolid), Søren Lund (slu),
Sponsors & Partners
Thanks to our sponsors and partners for making the workshop possible:
The Nordic Perl Workshop has a long tradition of being hosted between the Nordic Countries and cities, by local monger groups in happy collaboration. A list of previous workshops is available at: http://perlworkshop.dk/.
Dinner is sponsored by Perl6.org - The Perl 6 Developers Community