There is an upcoming Hydra Conference on Distributed Computing: https://hydraconf.com/ on July 11-12th. This is quite a rare event that gathers big name researchers like Lamport, Herlihy, and Scott, as well as lots of practitioners and is going to be held mostly in English, despite being hosted in St. Petersburg, Russia. So I thought that it will be an appropriate venue to spread the word on structured concurrency and I’m submitting the following abstract:
A traditional approach to concurrency in programming languages is well known – you are given primitives that launch concurrent processes, threads, tasks, coroutines, actors (you name it!) and some means to establish communication between them. As systems become more concurrent and as those primitives become more lightweight, tracking lifetimes of those entities and making sure they do not leak becomes a challenge. In this talk I’ll tell the story of the path that we went through when designing concurrency libraries for Kotlin programming language. How we started with traditional concurrency primitives and how we’ve discovered and implemented the concept of structured concurrency, what’s behind the name, and how it is now gaining popularity in other ecosystems. It would not be an exaggeration to say that we are witnessing a programming style revolution akin to move from GOTO-based unstructured code of the past to the structured programming paradigms of today that had started with iconic “Go To Statement Considered Harmful” letter of Dijkstra in 1968.
I’d be willing to make it into a pair talk to give it more variety if anyone cares to join, but I’m planning to cover as much structured concurrency ground as possible there.