This presentation explores the impact of the AI revolution on the Elixir programming language, delivered through the personal journeys and perspectives of Bruce Tate and Josh Price.
Bruce Tate recounts his programming evolution through Java, Ruby, and Erlang, highlighting the recurring need for flexible, robust abstractions that Elixir effectively provides. He shares a "dark moment" of concern regarding large language models (LLMs) potentially rendering traditional coding obsolete.
Josh Price then presents the "well-trodden path," emphasizing Elixir's unique position rooted in the Erlang BEAM, offering battle-tested capabilities like concurrency, distribution, and resilience long before they became industry trends. He advocates for Elixir's pragmatic functional programming, immutability, and simple programs as ideal for human and LLM comprehension. He introduces the Ash framework as a solution to avoid "reinventing the wheel" by focusing on domain modeling and deterministic code generation.
Both speakers caution against the "Easy Street" of purely AI-generated, non-deterministic code, citing risks of delusion and observed productivity reductions. They propose a "third possibility": combining deterministic Elixir foundations with strategic, "edge" use of non-deterministic AI tools. The talk concludes with an optimistic outlook, asserting Elixir's unique preparedness for the future due to its solid, flexible abstractions, excellent operational characteristics, and a call to learn, thrive, and cherish community.
The AI's Revolution and its Impact on Elixir
0:15 Introduction to the AI Revolution & Elixir: The talk focuses on how AI impacts Elixir, using metaphors of personal journeys, national parks, and open-source contributions.
1:46 Bruce Tate's Personal Elixir Journey ("Old Case for Elixir"):
2:49 Java Era: Started simple (Plain Ordinary Java Objects - POJOs) but became bloated and complex over time, likened to the ill-fated Vasa ship (4:06).
4:56 Ruby Era: Embraced for its simplicity, beauty, and harmony (Japanese National Garden metaphor) as a sales tool against Java's complexity. However, it proved fragile when business needs pushed beyond its core abstractions ("three blue chips" model breaking down) (7:44).
8:18 Erlang Discovery: Moved to Erlang out of fear, appreciating its concurrency, distribution, and reliability (OTP, self-healing processes) (10:03). However, he found its syntax and tooling lacking for his specific needs (10:50).
11:11 Elixir's Emergence: Found Elixir, which combined the best of previous languages: community, simple foundational concepts (POJOs, GenServers), strong syntax and tooling, concurrency, distribution, and robust enterprise capabilities without bloat (11:27). Elixir's better abstractions allowed more features to "fit in every application" (12:26).
14:08 The "Dark Moment" & AI Concern: A colleague, Chris Miller, revealed he was writing code exclusively through LLMs and hadn't coded a lambda in 1.5 years, creating a sense of unpreparedness (14:13).
17:40 Similar Journey: His journey mirrored Bruce's, moving from Java (bloated J2EE) to Ruby (productivity revelation) but eventually losing hope due to complexity (18:56).
19:07 Discovery of BEAM/Erlang/Elixir: Found the "solid and timeless foundations" of the BEAM, Erlang, and Elixir.
19:20 BEAM's Early Capabilities: Highlighted Erlang's "hipster" status, offering distributed computing (before the internet), concurrent processing (before multi-core CPUs), and resilience (isolation, health checks, auto-restarts, zero-downtime upgrades) decades before industry trends like Docker/Kubernetes (20:21).
20:36 Nano-services & Modularity: Erlang's "nano-services" and modular monoliths effectively solved the "people problem" that microservices later addressed, requiring fewer developers for powerful systems (20:51).
21:05 GenServer as an "Agentic Loop": OTP's GenServer is presented as the perfect abstraction for the future's "agentic" systems (21:16).
21:46 Elixir's Core Strengths: A "killer combination" of pragmatic functional programming, immutability, pattern matching, and improving types, leading to simple, bug-free programs easy for humans and LLMs to reason about (21:56).
22:28 The "Iceberg" Problem: Modern applications are increasingly complex, with developers spending significant time on low-value, commodity "below the waterline" problems, constantly "reinventing the wheel" (23:00).
23:55 Ash Framework for Efficiency: Introduced Ash as a solution to focus on declaring core business logic (domain/resources) and generating other layers (UI, data), leveraging Elixir's flexible abstractions for "bigger building blocks" (24:18).
25:48 The "Easy Street" of AI Generative Coding: This path is characterized by non-determinism and "dice rolls" in output (26:10).
26:46 Dangers & Delusion: Compared to a slot machine, AI-generated code can lead to cognitive biases like the gambler's fallacy and Dunning-Kruger effect, where perceived productivity gains are often actual reductions (27:42). A study is cited showing a 20% reduction in productivity despite a forecasted 20% improvement (28:13).
29:45 Jevons Paradox & Future Landscape: Predicts that easier programming (due to AI) will make software cheaper, leading to more software, much of it potentially messy and error-prone (30:08). New roles like "AI Whisperer" may emerge (30:48).
31:37 The "Third Possibility" (Combining Paths): The "fork in the road" is a false choice. The best approach is to combine deterministic coding (Elixir) for core foundations with non-deterministic AI tools used strategically at the edges, building on sound foundations rather than shaky ones (31:41).
33:30 Elixir's Unique Preparedness: Elixir is uniquely prepared for the future because its "new case is the old case": flexible, deterministic abstractions, larger building blocks, and solid foundations that LLMs can also build upon with more determinism, leading to excellent operational characteristics (33:50). This allows promotion of outcomes rather than just language syntax (34:35).
34:43 Final Message of Hope: Analogous to navigating the Gulf of Mexico during a storm, the key is to acquire knowledge, wait for the right conditions, and learn continuously (35:33). The tools are changing, but Elixir is "ideally positioned" for this moment, enabling developers to "thrive" by enjoying the journey and cherishing community (37:52).