|
<<< Previous speaker
|
next speaker >>>
|
Rich Hickey, Creator of Clojure
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
Abstract:
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
Abstract:
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
Abstract:
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.
|
|
|