<<< Previous speaker next speaker >>>

Stuart Halloway, Author of "Programming Clojure" and "Rails for Java Developers"

 Stuart  Halloway
Stuart Dabbs Halloway is a co-founder of Relevance, Inc. Stuart is the author of Programming Clojure, Component Development for the Java Platform, and Rails for Java Developers.

Stuart regularly speaks at industry events including the No Fluff, Just Stuff Java Symposiums, the Pragmatic Studio, RubyConf, and RailsConf.


Presentation: "Clojure-Java Interop: A Better Java than Java"

Time: Wednesday 10:35 - 11:35

Location: Olympic Room

Clojure's approach to Java interop achieves three goals: It
  • is easier to use than Java itself
  • provides access to the best possible JVM performance when you need
  • encourages a style of programming that uses the good parts of Java

In this talk you will learn how Clojure achieves these objectives, and how to use Clojure effectively in a mixed-language environment. You will see:
  • calling Java from Clojure, and Clojure from Java
  • using macros such as doto to eliminate boilerplate code
  • why you want protocols, not interfaces
  • keeping your data out of walled gardens: records vs. classes
  • working with legacy code: genclass, proxy, and annotations
  • using type hinting for "pay as you go" performance tuning
  • how to deal with the primitive/Object divide

Presentation: "Perception and Action: An Introduction to Clojure's Time Model"

Time: Friday 14:05 - 15:05

Location: Stanford Room


Perception and action are radically different. Clojure's time model makes it easy to build systems that model the real-world differences between perception and action. In this talk, you will learn how to think using 

values: immutable data items, both atomic and composite

identities: entities that take a series of causally-related values over time

time: a before/after ordering of perceptions and actions

references: point-in-time values of an identity

Getting time right is essential for modeling concurrency effectively, but its importance does not stop there. Without a good model of time, it is difficult to deal sensibly with currency and history, much less concurrency and parallelism.

The ideas in this talk will help you create better programs that more faithfully model the world, even if you write linear programs that hope to never see a second thread.