Erlang, the Hidden Gem: Solving Problems at Scale for 30+ Years • Francesco Cesarini • GOTO 2021

GOTO Conferences

GOTO Conferences

24 min, 5 sec

The video features a deep dive into Erlang, Elixir, and the BEAM virtual machine, discussing their origins, features, and impact on concurrent programming.

Summary

  • Francesco Cesarini discusses the streaming capabilities of Erlang and its ecosystem, including platforms like Cisco and Ericsson's systems.
  • Erlang's history traced from its inception in the late '80s to its current status as a mature ecosystem.
  • The conversation moves to the relationship between Elixir and Erlang, detailing Elixir's role in expanding the reach of the Erlang ecosystem.
  • The principles of fault tolerance in Erlang's OTP framework are explained, highlighting the 'let it crash' philosophy.
  • Francesco Cesarini elaborates on the evolution of Erlang and Elixir in the context of the IoT and machine learning.

Chapter 1

Introduction to the Discussion and Riverside Platform

0:18 - 7 sec

The video starts with a brief mention of using the Riverside platform and a question on its underlying technology.

The video starts with a brief mention of using the Riverside platform and a question on its underlying technology.

  • The host begins by mentioning that they are using the Riverside platform for the discussion.
  • A question is raised about whether Riverside is running on Erlang.

Chapter 2

Erlang's Relevance in Streaming Platforms

0:27 - 57 sec

Francesco touches on the significance of Erlang and Elixir in the realm of video streaming platforms.

Francesco touches on the significance of Erlang and Elixir in the realm of video streaming platforms.

  • Erlang and Elixir are pivotal in the development of numerous streaming platforms and frameworks.
  • Platforms like Cisco and Ericsson's video systems are Erlang-based.
  • Erlang establishes connections for video streams similarly to how it handles phone calls.

Chapter 3

Francesco Cesarini's Introduction and Erlang's History

1:24 - 2 min, 21 sec

Francesco Cesarini introduces himself and provides a detailed historical background of Erlang.

Francesco Cesarini introduces himself and provides a detailed historical background of Erlang.

  • Francesco Cesarini, founder and technical director at Erlang Solutions, recounts his long history with Erlang.
  • The origin of Erlang's name is tied to Agner Krarup Erlang, a Danish mathematician, though management believed it was named after Ericsson.
  • Erlang's development timeline is discussed, with its beginnings in the late '80s and becoming production-ready by the mid '90s.

Chapter 4

The Secret Sauce of Erlang and the BEAM Virtual Machine

4:18 - 2 min, 27 sec

Francesco dissects the components that give Erlang its power, with a focus on the BEAM VM and OTP.

Francesco dissects the components that give Erlang its power, with a focus on the BEAM VM and OTP.

  • Erlang's power is attributed to the BEAM VM, OTP middleware, and the semantics of the Erlang programming language.
  • The BEAM VM is optimized for concurrency and recently got a JIT compiler.
  • OTP abstracts concurrency models and error handling, enhancing resilience and scalability.

Chapter 5

Elixir's Role in the Erlang Ecosystem

6:45 - 3 min, 5 sec

The discussion pivots to Elixir's impact on the Erlang ecosystem and its appeal to a broader range of developers.

The discussion pivots to Elixir's impact on the Erlang ecosystem and its appeal to a broader range of developers.

  • Elixir compiles to Erlang bytecode and is designed to leverage Erlang's existing tools and libraries.
  • Elixir is seen as a modern iteration of Erlang with different syntax and tooling, opening up Erlang's capabilities to more developers.
  • Elixir's creation was driven by the desire to bring Erlang's power to web developers.

Chapter 6

Fault Tolerance and Error Handling in Erlang

9:50 - 4 min, 17 sec

Francesco explains how Erlang's approach to fault tolerance through process isolation and supervision trees simplifies error handling.

Francesco explains how Erlang's approach to fault tolerance through process isolation and supervision trees simplifies error handling.

  • Erlang processes are isolated, which means failure in one does not affect others, exemplifying the 'let it crash' philosophy.
  • Supervision trees monitor processes, reacting to failures in a standardized way, which reduces the programming burden.
  • This approach to fault tolerance is highly efficient compared to traditional error handling in languages like C++.

Chapter 7

Influences and Applications of Erlang's Concurrency Model

14:07 - 3 min, 8 sec

The influence of Erlang's concurrency model on other frameworks like Akka is discussed, highlighting the differences with the JVM.

The influence of Erlang's concurrency model on other frameworks like Akka is discussed, highlighting the differences with the JVM.

  • Akka, and its .NET variant, were inspired by Erlang's concurrency model and OTP error handling.
  • Akka on the JVM emulates many features of the BEAM, but there are inherent differences due to the JVM's design.
  • The BEAM VM ensures fairness in process scheduling, which cannot be guaranteed in Akka due to the need for actors to yield control.

Chapter 8

Erlang's Scheduling and Migration Logic

17:15 - 1 min, 39 sec

Francesco describes how Erlang's BEAM VM manages process scheduling and load balancing across multiple CPU cores.

Francesco describes how Erlang's BEAM VM manages process scheduling and load balancing across multiple CPU cores.

  • The BEAM starts a scheduler for each CPU core, distributing processes evenly across them.
  • Processes may migrate between schedulers to maintain load balance and optimize resource utilization.

Chapter 9

Erlang and Elixir in IoT and Machine Learning

18:54 - 2 min, 56 sec

The conversation explores the expanding role of Erlang and Elixir in IoT, machine learning, and embedded systems.

The conversation explores the expanding role of Erlang and Elixir in IoT, machine learning, and embedded systems.

  • Erlang and Elixir are increasingly used in IoT devices and cars for data analysis due to performance improvements and new tools.
  • The conversation touches on Erlang on mobile devices, though its primary use case remains server-side.
  • With the advent of Nerves and graphical packages, Elixir is moving into embedded systems, and with initiatives like Axon, into machine learning.

Chapter 10

Erlang's Evolution and Maintenance

21:50 - 1 min, 58 sec

The evolution of Erlang is discussed, focusing on the conservative approach to language changes and the emphasis on the BEAM VM.

The evolution of Erlang is discussed, focusing on the conservative approach to language changes and the emphasis on the BEAM VM.

  • Erlang's programming language sees few changes, with most development efforts targeting the libraries, frameworks, and BEAM VM.
  • Ericsson's conservative approach to Erlang's evolution is due to the vast amount of Erlang code in production and the need to maintain it.
  • Improvements to the BEAM VM result in better performance, illustrating Erlang's ongoing optimization for modern architectures.

More GOTO Conferences summaries

Intro to the Zig Programming Language • Andrew Kelley • GOTO 2022

Intro to the Zig Programming Language • Andrew Kelley • GOTO 2022

GOTO Conferences

GOTO Conferences

A comprehensive summary of a presentation on the Zig programming language, its benefits, and its place in software development.

The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019

The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019

GOTO Conferences

GOTO Conferences

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.

Designing A Data-Intensive Future: Expert Talk • Martin Kleppmann & Jesse Anderson • GOTO 2023

Designing A Data-Intensive Future: Expert Talk • Martin Kleppmann & Jesse Anderson • GOTO 2023

GOTO Conferences

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

Why Static Typing Came Back • Richard Feldman • GOTO 2022

GOTO Conferences

GOTO Conferences

An in-depth look into the reasons behind the resurgence of static typing in programming languages.

When to Choose Rust • Tim McNamara • YOW! 2022

When to Choose Rust • Tim McNamara • YOW! 2022

GOTO Conferences

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

Worse Is Better, for Better or for Worse • Kevlin Henney • GOTO 2013

GOTO Conferences

GOTO Conferences

A detailed exploration of the 'Worse is Better' software development philosophy, its impact on product design, UX, and the development process.