October Meeting: Concurrency Zen, with Marc Esher

Posted in :

Dora Banks

We’re changing the schedule up to fit the needs of this month’s speaker, so pay attention to the date!

Before getting his start in IT, Marc Esher was a teacher. And it turns out he’s a brilliant developer, too. He’s one of the lead developers of both the MXUnit and CFMongoDB open source projects, among others; and he works on an allstar consulting team at Booz Allen with the likes of Kotek, Rinehart, Stroz, etc. That mixture of talents makes for a great presentation, and when I saw him present Concurrency Zen at CFObjective this year I was impressed (as expected), and I begged him to come out and present it for us in person. He lives in the Pittsburgh area, so he agreed to come to do it in person as long as I would take him out for Belgian beers afterward and put him up for the night.

Here’s how Marc describes his presentation:

Threads are the most primitive of concurrency datatypes on the JVM. They’re easy to use initially, but beyond basic use cases they become unwieldy, difficult to manage, and are nearly impossible to monitor correctly. The “CFThread in a for() loop and pray that none of the threads error” is a common, and terrible, practice.

Fortunately, a top-notch concurrency framework ships, today, with ColdFusion, and you can take advantage of these higher-level concurrency abstractions using JavaLoader in ColdFusion 9, and using native Java integration in ColdFusion 10.

In this session, I’ll show the difficulties of writing correct code with just cfthread, dig into the pitfalls and dangers, and show why these higher-level abstractions are superior. I’ll demonstrate how to use the Java Concurrency Framework to write sane, easy-to-manage, and most importantly — safe — programs which take advantage of concurrent processing.

The session will focus on writing simpler, smaller, *thread-UNAWARE* components, and delegating the messy concurrency details to the platform, resulting in code that is easier to implement, test, and maintain.