Cliff Moon shows how to create a polyglot distributed application by integrating Scala with Erlang through JInterface, a library designed for JVM-based languages to communicate with Erlang processes.
Ulf Wiger advocates for a programming model change based on the actor model which more accurately reflects old human concurrency patterns that we have used in our daily lives for thousands of years.
Joe Armstrong and Robert Virding recall the events leading to Erlang and its later evolution. They mention the Prolog interpreter, JAM, VEE, Strand88, OTP, TEAM, BEAM, and other technologies.
Kresten Krab Thorup emphasizes existing problems with the Java concurrency model, explaining when to use Erjang, a JVM-based Erlang VM, built around the process and actor concepts.
Scott Lystig Fritchie presents the architecture and lessons learned implementing a webmail system in Erlang, using UBF and Hibari, a distributed key-value store, to accommodate a large user base.
Steve Vinoski talks about the media distribution market and how Erlang is used in a media distribution switch to control the video stream flow at speeds up to 200Gb/s and handling tens of thousands of open HTTP connections.
Joe Williams discusses how distributed systems, cloud computing and automated configuration management affect system’s availability. He exemplifies with a database service built on CouchDB, Erlang, Chef, all running on EC2.
Cliff Moon explains how to make Erlang programs faster by writing performance critical sections of the code in C using Native Implemented Function and by integrating libraries using the linked-in driver interface. He also shows how to safely use C drivers in the Erlang concurrent environment and how to debug them in a running VM.
Bjarne Däcker recounts the story of CSLab at Ericsson, the birthplace or Erlang, how it started, some of the projects leading to Erlang, and its eventual success inside Ericsson as Erlang/OTP.
John Hughes shows how to explore the possible bugs of a code by creating a series of tests in Erlang and using multiple test frameworks, discovering the faults through successive tests and evaluating the frameworks while doing it.
Ulf Wiger shows how concurrency can lead to accidental complexity if it is badly implemented in code, becoming a project’s point of failure. Wiger also advises on how concurrency should be addressed in order to avoid complexity.
Joe Armstrong explains through Erlang examples that message passage concurrency represents the foundation of scalable fault-tolerant systems. Some of his presentation’s nuggets are: using the wrong abstractions makes life artificially difficult; it’s not about objects, it’s about messages; no shared memory; messages enforce isolation if communication is asynchronous; it’s all about protocols.