Thursday, May 15, 2009
Title: Clojure - Functional Programming for the JVM
Presented By: Mark Volkmann, OCI
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.

About the Presenters:

Mark Volkmann is a Partner at Object Computing, Inc. (OCI) in St. Louis where he has provided software consulting since 1996. He has worked in Java since 1995. As a consultant, Mark has assisted many companies with Java and XML application development.

Mark created and teaches many courses in software development. They include: Introduction to Java, Java Syntax for Non-C Programmers, Java Programming, Advanced Java Programming, Creating Graphical User Interfaces Using Java (Swing), eXtensible Markup Language (XML), XML Programming Using Java, Web Services Using Java and Ruby Programming.

Mark is a member of the St. Louis Java User Group steering committee and a regular presenter for that group. He has written for XML Journal, presented at XML DevCon conferences, and presented at all the No Fluff Just Stuff Gateway Software Symposiums.

 
Presentation Materials: ClosureSlides.pdf

Send comments to javasigsc at ociweb dot com