Function Passing Style: Typed, Distributed Functional Programming
12:30 - 13:20 Extra Spicy
The functional programming paradigm nicely fits problems in distributed programming. For example, moving computation to data can achieve multi-fold improvements in latency and throughput of big-data-style applications.
This talk presents a new paradigm of “Function Passing Style” as an effective means of distributed programming. We show that the combination of first-class distributable functions, types, and immutability gives rise to new rich patterns for building reliable distributed systems and we demonstrate the power of these patterns through prototypes of several interesting frameworks implemented in Scala:
A distributed collections framework a la Spark
A framework for reactive streams based on staged pipelines
A framework for remote query shipping
Through these examples, we show how the presented patterns increase the safety, composability, and reliability of distributed frameworks – lambda, the ultimate distributive!
Heather Miller has been a member of the Scala team, and a PhD student under Martin Odersky, since 2011. Her research focuses on programming language and compiler support for distributed programming – in particular, using type systems to facilitate the design of new, functional distributed systems. She is a regular contributor to Scala, and was on the team that designed Scala’s Futures & Promises, is responsible for improving several aspects of Scala documentation (API docs, guides, tutorials, quickrefs, including docs.scala-lang.org), and led the now >100,000-student-strong Coursera massive open online course, “Functional Programming Principles in Scala.”