Tech Mesh London 2012

Rich Hickey, Inventor of Clojure

Rich Hickey

Biography: Rich Hickey

Rich Hickey, the author of the Clojure programming language and designer of the Datomic database system, is a software developer with over 25 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

Track: Next Generation Databases / Time: Tuesday 11:35 - 12:25 / Location: Woburn

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.
 
Talk objectives: To make people rethink fundamentals of database architecture, in light of the principles of functional programming.
 
Target audience: Anyone who builds systems involving databases.

Presentation: Keynote: The Language of the System

Time: Tuesday 17:30 - 18:30 / Location: To be announced

Most software systems are not single processes written in a single programming language. Instead, systems are composed of a suite of processes, often written by separate parties. Even when every process is written in the same language, there is another language present, emerging from the interfaces, protocols, facilities and semantics the components offer to each other. Unlike most programming languages, these emergent languages are ad hoc, incomplete and poorly specified, with quirky semantics. In this talk we'll look at the roles these emergent languages play in the system as a whole, their characteristics, and the choices involved, drawing analogies to the facilities programming languages and their runtimes provide. We'll also look at what programming languages might learn from the requirements of systems.
 
Keynote objectives: To inspire and provoke
 
Keynote audience: Programmers building systems in multiple languages
 

Presentation: Panel Debate: Runtime Evolution, the Future of VMs

Time: Wednesday 16:15 - 17:00 / Location: To be announced

This panel debate will discuss advantages and tradeoffs between languages and their underlying runtime systems. Are languages with their own VM better off? How do they compare with those running on multi-purpose ones? How do they tie into the existing ecosystem? How do they perform and scale on multi-core? Or should we just compile to native code? Join language inventors and VM experts and listen to the arguments for and against choosing the right tool for the job.