The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019
GOTO Conferences
42 min, 3 sec
An in-depth exploration of Joe Armstrong's impact through Erlang and Elixir, the Erlang virtual machine (BEAM), and the benefits of concurrent and distributed systems built on BEAM.
Summary
- Joe Armstrong's work on Erlang has deeply influenced the field of concurrent and distributed systems.
- Erlang and Elixir are distinct languages but share the same powerful runtime, the Erlang virtual machine (BEAM), which simplifies building concurrent and distributed systems.
- The talk demonstrates the unique features of BEAM, such as lightweight processes, message passing, and fault tolerance, and how they enable building robust systems.
- The speaker showcases several hands-on demos, including fixing bugs in a live system, and highlights the potential of beam languages for technical uniformity and managing system complexity.
Chapter 1
Introduction to the session and paying tribute to Joe Armstrong's immense contributions to the field.
- The talk opens with a tribute to Joe Armstrong, the principal inventor of Erlang.
- Joe's work has had a profound impact on the field and the speaker's professional career.
- The focus is set on exploring the Erlang virtual machine (BEAM) and its capabilities in Erlang and Elixir.
Chapter 2
The speaker provides an overview of BEAM, Elixir, and the principles of concurrency.
- Introduction to the Erlang virtual machine (BEAM) and how Erlang and Elixir languages interface with it.
- Demonstration of how concurrency is achieved through the creation of lightweight, isolated processes.
- Processes communicate via message passing, which is a core concept of BEAM concurrency.
Chapter 3
The speaker elaborates on the mechanics of BEAM concurrency and process management.
- Each Erlang process is a sequential program with no internal concurrency, running in its own memory space.
- Concurrency is achieved by running multiple processes and using message passing between them.
- Processes are lightweight, allowing for the creation of potentially millions of concurrent processes.
Chapter 4
Exploration of process isolation and fault tolerance within BEAM and Erlang/Elixir.
- Processes are isolated to ensure that a crash in one does not affect others, promoting fault tolerance.
- The speaker demonstrates how to use process isolation to handle errors without affecting the overall system.
- The system continues to function normally despite individual process failures.
Chapter 5
The speaker demonstrates debugging techniques and runtime introspection in a live BEAM system.
- BEAM's debuggability is showcased through a live debugging session, identifying and killing a rogue process.
- Demonstration of how the system's performance returns to normal after addressing the problematic process.
- The talk illustrates how BEAM makes it possible to debug and manage a system interactively.
Chapter 6
Discussion on BEAM's support for distributed systems and clustering capabilities.
- BEAM allows for the creation of clusters of nodes, enabling distributed computing.
- The speaker demonstrates how to start named services across a cluster and handle node failures.
- While acknowledging challenges with BEAM distribution, the speaker sees potential for improvement.
Chapter 7
The speaker highlights the advantages of technical uniformity in system development and management.
- Technical uniformity across the system reduces complexity and improves teamwork.
- By using a single language and runtime, many operational aspects can be simplified.
- The speaker sees the combination of quick start capabilities and long-term scalability as a major benefit of BEAM.
More GOTO Conferences summaries
Intro to the Zig Programming Language • Andrew Kelley • GOTO 2022
GOTO Conferences
A comprehensive summary of a presentation on the Zig programming language, its benefits, and its place in software development.
Designing A Data-Intensive Future: Expert Talk • Martin Kleppmann & Jesse Anderson • GOTO 2023
GOTO Conferences
A detailed conversation with Martin Kleppmann about data systems, his book, and the evolution of cloud services.
Why Static Typing Came Back • Richard Feldman • GOTO 2022
GOTO Conferences
An in-depth look into the reasons behind the resurgence of static typing in programming languages.
Erlang, the Hidden Gem: Solving Problems at Scale for 30+ Years • Francesco Cesarini • GOTO 2021
GOTO Conferences
The video features a deep dive into Erlang, Elixir, and the BEAM virtual machine, discussing their origins, features, and impact on concurrent programming.
When to Choose Rust • Tim McNamara • YOW! 2022
GOTO Conferences
A comprehensive discussion on Rust, its features, ecosystem, and use cases, including comparisons with other languages.
Worse Is Better, for Better or for Worse • Kevlin Henney • GOTO 2013
GOTO Conferences
A detailed exploration of the 'Worse is Better' software development philosophy, its impact on product design, UX, and the development process.