Gateway Software Symposium

May 21 - 23, 2010 - St. Louis, MO


St. Louis Marriott West
660 Maryville Centre Drive
St. Louis, MO   63134
Map »

Mark Volkmann

Software Consultant and Partner at OCI

Mark Volkmann is a partner at Object Computing, Inc. (OCI) in

St. Louis where he has provided software consulting since 1996.

As a consultant, Mark has assisted many companies with

Java, XML, Web, jQuery and Node.js application development.

Mark also has created and teaches many courses on topics including:

Java, Swing, XML, XML Schema, Relax NG, XPath, XSLT, XQuery,

DOM, SAX, JAXP, JDOM, JAXB, SOAP, WSDL, Ruby,

HTML5, CSS3, JavaScript, CoffeeScript and jQuery.

He is currently developing a course on Node.js.

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 and the No Fluff Just Stuff (NFJS) magazine.

He has presented the XML DevCon, NFJS and Strange Loop conferences.



Presentations

Clojure - Functional Programming for the JVM

Clojure is a dynamically-typed, functional programming language that runs on the JVM 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).

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/Softwaretransactionalmemory.

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.