About the Presentation:

Clojure is a dynamically-typed, functional programming language that runs on the JVM (Java 5 or greater) and provides interoperability with Java. A major goal of the language is to make it easier to implement applications that access data from multiple threads (concurrency). Soon Clojure will also be available for the .NET platform. ClojureCLR is an implementation of Clojure that runs on the Microsoft Common Language Runtime instead of the JVM. Clojure might be for you if: you're interested in making concurrent programming easier

you're open to branching outside the world of object-oriented programming to try functional programming

it is important for the applications you write to run on the JVM in order to take advantage of existing Java libraries, portability and other benefits

you prefer dynamically-typed languages over statically-typed ones

you find the minimal, consistent syntax of Lisp dialects appealing I plan to spend a large part of the talk focusing on the reference types in Clojure (Refs, Atoms and Agents) which are its primary mechanisms for dealing with concurrency. Even if you have no plans to use Clojure, learning about Software Transactional Memory (STM) will be valuable. See http://en.wikipedia.org/wiki/Software_transactional_memory. I recommend glancing through an article I wrote on Clojure before attending the talk to familiarize yourself with some of the syntax and features of the language. See http://ociweb.com/mark/clojure/article.html.