Glen Peterson uses the Expression Problem to compare refactoring in Java, Scala and Clojure, showing how traits minimize changes in Scala when an interface changes and how Clojure avoids some of the issues.
Timothy Baldridge introduces Clojure’s Core.Async library, presenting the motivation behind the library and examples in Clojure and ClojureScript helpful to decouple subsystems in an application.
Sponsored by Goldman Sachs. Java 8 has Streams, Scala has parallel collections, and GS Collections has ParallelIterables. Since we use parallelism to achieve better performance, it's interesting to ask: how well do they perform? We'll look at how these three APIs work with a critical eye toward performance. We'll also look at common performance pitfalls.
Stuart Sierra discusses various Clojure features: protocols, records, DI, managing startup/shutdown of components, dynamic binding, interactive development workflow, testing and mocking.
Jack Singleton discusses how to improve code readability and maintainability in Scala, and how to be productive with Options, Immutability, and the Collections library.
Lance Walton shares the experience of a small team building a trading platform in 6 weeks in Scala and Lift while fighting against an opposing organizational culture.
Josh Suereth discusses Scala: expressions, abstracting behaviors, FP & OOP, Futures & Promises, libraries with implicit classes and value classes, tracking lexical state with implicit values.
Adam Warski shows how to replace features of DI containers with plain Scala code using MacWire, and adding interceptors using macros.
Marc-Daniel Ortega shares code snippets showing how to implement some logic in a functional language inspired by “Functional Programming in Scala”, avoiding the OOP influence.
Stefan Chis demoes building a Lisp dialect in Scala, covering: parsing code, defining data types and functions, evaluating expressions, implementing higher order functions.
Adam Rosien introduces scalaz, how to use it to make code simpler and type safer, how it compensates for Scala issues, and how it encapsulates DI and data validation.
Olivier Chafik discusses how to make a practical use of reified trees in Scala, with two applications: run-time (re)compilation for extreme speed, and conversion to another language (OpenCL).