Strange Loop

Function Passing Style: Typed, Distributed Functional Programming

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. By bringing together recent advances in type systems research and new language features in Scala, this paradigm promotes new patterns of programming in distributed environments using distributable lambdas and types. We lay out the principles of this paradigm as well as guidelines for its application in practice.

We show that the combination of first-class distributable functions, types, and immutability gives rise to new rich patterns for building reliable distributed systems. 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

Heather Miller

École Polytechnique Fédérale de Lausanne

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, and led the now >100,000-student-strong Coursera massive open online course, “Functional Programming Principles in Scala.”