Impromptu: A Lightweight, dependently-typed async framework for Scala
Writing safe asynchronous code is often an uneasy fit in a strict, impure functional language like Scala. While high-level constructions like futures facilitate asynchronous programming, syntactic limitations often make blocking calls, or the unchecked access of asynchronously-computed values more natural than the safer alternatives. This talk will introduce Impromptu, a lightweight Scala API for safely defining and executing graphs of dependent tasks, without blocking or unsafe-access of asynchronously-computed values. Impromptu uses Scala’s type system and type inference to automatically encode a task’s dependencies within its type, then utilizes these types as constraints to restrict access to values produced by tasks declared as dependencies, and thereby known to be complete. This results in very lightweight and natural syntax, without blocking or unsafe access. Furthermore, Impromptu will take advantage of current research into implicit functions in the Dotty compiler to remove a small amount of remaining boilerplate syntax for each task.
Mon 19 JunDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
10:30 - 12:50 | |||
10:30 40mTalk | Impromptu: A Lightweight, dependently-typed async framework for Scala Curry On Talks Jon Pretty Propensive Ltd | ||
11:20 40mTalk | Centrifuge : Data quality in Spark without the costs! Curry On Talks Jonathan Winandy Univalence | ||
12:10 40mTalk | Angelina Ballerina Learns About Memory Allocation Curry On Talks Allison McMillan Collective Idea |