Session Details
Session ID: TS-5354
Session Title: Exploiting Concurrency with Dynamic Languages
Session Abstract: The Java™ platform's support for concurrency is strong and increasingly important now that Moore's Law means more cores on a chip (parallelism) and not increasing clock speed (sequential speed). However, it's not easy to get concurrency right.

This session explores how dynamic languages such as Clojure, JRuby, and Jython can exploit the Java platform's concurrency facilities. It directly compares code samples across a range of typical scenarios: plain old threads, task execution with the executor framework in java.util.concurrent, Hadoop for map-reduce computations, fork-join parallelism, and parallel arrays (JSR 166). The presentation is opinionated: Does using these languages actually make it easier to get the best practices right? It looks at patterns on dos and don'ts (good, bad, mediocre) from "Java Concurrency in Practice" (Goetz). Last, it discusses actual performance and scalability on relevant hardware.

The session is aimed at developers and architects with an interest in dynamic languages, concurrency, or both.

Attendees will gain insight into
• Breadth and depth of the Java platform for supporting concurrency
• How dynamic languages support concurrent programming, including concepts such as closures (blocks), generators, mutability, shared memory, message passing, and persistence
• Where and when dynamic languages encourage best practices
• Where relevant, differences between C and Java technology-based implementations of Python and Ruby for concurrency
Track: Core Technology: Java SE & Desktop; Services: Web 2.0, Next Generation Web, and Cloud Services Platform; Tools and Languages; Tools and Languages Scheduling Track
Duration: 60
Speaker(s): Tobias Ivarsson, Neo Technology