The May CJUG meeting will be held on Wednesday 13th May between 5.00PM
and 7.00PM MDT. This will again be an online meeting held using Elluminate Live. A link to join the meeting will be posted here earlier that day. In our last few meetings we've had Nikita Ivanov and Tom Malaher talk about cloud/grid computing - one form of distributed computing. The other form we will see much more of in future is the use of systems not just with two, four or eight cores, but tens or even hundreds of cores. While the JVM itself can handle such parallelism quite efficiently, the Java language constructs - threads, locks, etc - are difficult to use effectively and, even when they are, multithreaded applications can quickly become non-deterministic due to thread interactions such as deadlocks & race conditions. A new wave of programming languages for the JVM have appeared which use a different paradigm: functional programming. It's been around for some time in the form of languages like Lisp, Erlang & Haskell, but now Scala & Clojure are making it easier to build massively parallel applications and still run them on our favorite (and arguably the most efficient) virtual machine. Paul Umbers will talk briefly about the history of functional programming, some of the characteristics of FP languages and walk through some examples written in Clojure. Paul has been in the IT industry for over 25 years, initially with IBM in a variety of roles, more recently as an independent consultant specializing in Internet-based application development. Over the last 15 years he has worked for clients across the aerospace, banking, communications & technology industries ranging from blue-chips to start-ups. He is currently the Software Architect for Elluminate Inc, based in Calgary. Slides from this presentation are available here. |