Erlang

Erlang is a concurrent, functional programming language designed for building distributed, fault-tolerant systems with high availability requirements. It was originally developed by Ericsson for telecommunications systems and features the Actor model, lightweight processes, and "let it crash"…

Erlang (programming language): The Telecom Giant That Revolutionized Fault-Tolerant Computing

When 1986 rolled around and Ericsson's engineers faced a telecommunications nightmare—systems that couldn't afford to crash—they didn't just patch existing solutions. They invented Erlang, a programming language that transformed the very concept of system reliability. This wasn't your typical academic experiment; it was born from the brutal reality of telecom infrastructure where 99.9999% uptime (that's 31 seconds of downtime per year) wasn't a nice-to-have—it was survival. Erlang didn't just solve distributed computing; it redefined what "bulletproof software" could mean.

The Nine-Nines Problem That Sparked Innovation

Picture this: 1980s telecommunications infrastructure where a single software crash could disconnect thousands of phone calls, costing millions in revenue and potentially blocking emergency services. Traditional programming languages treated crashes as catastrophic failures requiring system restarts. Ericsson's engineers, led by Joe Armstrong, Mike Williams, and Robert Virding, faced a different reality—they needed systems that could fail gracefully while maintaining service.

The breakthrough wasn't just technical; it was philosophical. Instead of preventing failures (impossible in complex distributed systems), Erlang embraced the "let it crash" philosophy. The language spawned millions of lightweight processes—not OS threads, but Erlang processes that could fail independently without bringing down the entire system. Each process was isolated, communicating only through message passing, creating a fault-tolerant architecture that could self-heal.

Why Telecom Loved It (And Why Silicon Valley Took Decades to Notice)

Erlang caught fire in telecommunications because it solved real-world problems with elegant simplicity. The Actor model implementation meant that processes were cheap to create and destroy—you could spawn millions without breaking a sweat. Hot code swapping allowed engineers to update running systems without downtime, a feature that made telecom executives weep with joy.

But here's the twist: while Erlang was revolutionizing telecom reliability throughout the 1990s and 2000s, Silicon Valley largely ignored it. The language's functional programming paradigm and unique syntax felt alien to developers raised on C++ and Java. It wasn't until the rise of distributed web services and the need for massive concurrency that companies like WhatsApp (handling 2 billion messages daily with just 50 engineers) and Discord proved Erlang's broader relevance.

The Functional Family Tree That Changed Everything

Erlang didn't emerge in a vacuum—it borrowed the mathematical foundations of functional programming while innovating on concurrency models. Its influence rippled through the programming landscape, spawning Elixir (2011), which wrapped Erlang's virtual machine in Ruby-inspired syntax, making it accessible to a broader developer audience.

The language's descendants include: - Elixir: Modern syntax, same battle-tested VM - LFE (Lisp Flavoured Erlang): Lisp syntax on Erlang foundations - Gleam: Type-safe functional language targeting the Erlang VM

More importantly, Erlang's concurrency model influenced Go's goroutines, Scala's Akka framework, and even JavaScript's Web Workers. The "let it crash" philosophy became a cornerstone of modern microservices architecture and chaos engineering practices.

Career Implications: The Specialist's Golden Path

Here's the career reality: Erlang developers command premium salaries—typically 15-25% above average software engineering compensation—because the skill is rare and the problems it solves are expensive. Companies using Erlang aren't experimenting; they're solving mission-critical distributed systems challenges.

The learning path is unconventional but rewarding. Erlang demands a functional programming mindset and understanding of concurrent systems design. Prerequisites include solid grasp of functional concepts and distributed systems theory. The migration path often leads to Elixir (easier syntax, same power), Go (similar concurrency philosophy), or specialized distributed systems engineering roles.

The job market is niche but lucrative: fintech companies building trading systems, gaming companies managing millions of concurrent connections, and IoT platforms requiring massive device coordination. Think fewer opportunities but higher compensation and more interesting technical challenges.

The Fault-Tolerant Future

Erlang proved that embracing failure could create more reliable systems than preventing it. In an era where distributed systems dominate and microservices are standard architecture, Erlang's foundational principles have become industry wisdom. The language that once seemed too specialized for mainstream adoption now looks prophetic.

For developers, Erlang represents a masterclass in concurrent systems design and functional programming. Whether you write production Erlang or not, understanding its principles—actor models, fault tolerance, and distributed system design—has become essential knowledge in our cloud-native world. It's not just a language; it's a philosophy that changed how we think about building resilient software.

Key facts

First appeared
1986
Category
technology
Problem solved
Building highly concurrent, distributed, fault-tolerant telecommunications systems that could handle millions of lightweight processes and maintain 99.9999% uptime
Platforms
macos, embedded, linux, windows, unix

Related technologies

Notable users

  • WhatsApp
  • Ericsson
  • Goldman Sachs
  • Bet365
  • T-Mobile
  • Discord
  • Klarna