Rich Hickey, the author of Clojure, is an independent software designer, consultant and application architect with over 20 years of experience in all facets of software development. 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.
Time: Wednesday 14:15 - 15:15
Location: Henry Moore Room
Abstract: Customers and stakeholders have substantial investments in, and are comfortable with the performance, security and stability of, industry-standard platforms like the JVM and CLR. While Java and C# developers on those platforms may envy the succinctness, flexibility and productivity of dynamic languages, they have concerns about running on customer-approved infrastructure, access to their existing code base and libraries, and performance. In addition, they face ongoing problems dealing with concurrency using native threads and locking. Clojure is a pragmatic dynamic language designed in this context. It is a general-purpose language suitable in those areas where Java is suitable. It reflects the reality that, for the concurrent programming future, pervasive, unmoderated mutation simply has to go. Clojure meets its goals by: embracing an industry-standard, open platform - the JVM; modernizing a venerable language - Lisp; fostering functional programming with immutable persistent data structures; and providing built-in concurrency support via software transactional memory and asynchronous agents. The result is robust, practical, and fast. This talk will provide an introduction to Clojure, and an exploration of how it addresses the challenges facing developers today.
Presentation: "Persistent Data Structures and Managed References"
Time: Thursday 14:15 - 15:15
Location: Abbey Room
Abstract: All functional programming languages emphasize working with immutable data as much as possible. How can that be efficient, and what benefits does it bring? And what happens when you need state, to manage changing values over time? One method is to use mutable references with concurrency semantics, such as transactions, coupled with persistent data structures. This combination makes for easy, lock-free designs, well within the comfort zone of those used to imperative programming. This talk discusses how immutability, state and identity are handled in the Clojure language.
Presentation: "Clojure - interview"
Track: Interview Track (Friday)
Time: Friday 09:15 - 10:15
Location: Fleet Room
Abstract: Werner Schuster interviewing Rich Hickey