<<< Previous speaker next speaker >>>

Rich Hickey, Creator of Clojure

 Rich  Hickey

Rich Hickey, the author of Clojure and designer of Datomic, is a software developer with over 20 years of experience in various domains. Rich has worked on scheduling systems, broadcast automation, audio analysis and fingerprinting, database design, yield management, exit poll systems, and machine listening, in a variety of languages.

Presentation: "The Database as a Value"

Time: Monday 14:00 - 15:00

Location: Salon C

Proponents of functional programming tout its many benefits, most of which are available only within a particular process, or afforded by a particular programming language feature. Anything outside of that is considered I/O, dangerous and difficult to reason about. But real systems almost always cross process and language boundaries, and most require, crucially, a very gnarly bit of shared state - a database. In this talk we will examine how Datomic renders the database into that most prized and easy-to-reason-about construct, a value, and makes it available to multiple processes in multiple languages, functional and not.

Along the way, we'll discuss the importance of immutability and time in representing information, the reification of process, and the mechanisms of durable persistent data structures. No knowledge of functional programming is required.

Presentation: "Reducers - A Library and Model for Collection Processing"

Time: Tuesday 12:05 - 13:05

Location: Salon A-B


Both imperative and functional languages have traditionally taken a fundamentally serial approach to collection manipulation and transformation - using iterators, enumerators, lists, sequences, recursion etc. But speed gains in the future are going to come from parallelism. How should basic operations like map and filter be (re)defined such that they are amenable to parallelism? What are the primitives, and how can they be made composable and extensible? How can we take advantage of facilities like Java's Fork/Join framework?

This talk will describe the approach taken in the Clojure reducers library. Along the way we'll touch on higher-order functions, associativity, map/reduce, work-stealing and the fundamental nature of collections.

Presentation: "Keynote: The Value of Values"

Time: Wednesday 09:20 - 10:20

Location: Salon A, B, C, D


Imperative and OO developers are hearing more and more about functional programming and are often still left wondering what the fuss is all about. One of the least articulated benefits of functional programming is often the one most prized - the pleasure and sanity of programming with values, and it can be difficult to appreciate without first-hand experience. This talk will discuss value-oriented programming and its antithesis - place-oriented programming, examining the benefits and costs of each, in the small and in the large. Along the way we'll discuss the beauty of garbage, and the relationship between space and time.