📖 Overview
Joe Armstrong was a computer scientist and programmer best known as one of the co-creators of the Erlang programming language and its associated OTP framework. He developed Erlang at Ericsson in the late 1980s, designing it specifically for distributed, fault-tolerant applications with high reliability requirements.
Armstrong's work on Erlang helped establish many foundational concepts in concurrent and distributed computing, particularly the actor model of computation. His 2003 PhD thesis "Making reliable distributed systems in the presence of software errors" became highly influential in the field of distributed systems design.
Through his books, including the seminal "Programming Erlang: Software for a Concurrent World," Armstrong helped popularize functional programming concepts and established key principles for building scalable, resilient systems. He continued to be an active voice in the programming community until his death in 2019, frequently speaking at conferences and contributing to discussions about software architecture and system design.
His influence extends beyond Erlang, as many of the principles he championed - like isolation between processes, handling failures gracefully, and designing for concurrency - have become increasingly relevant in modern cloud computing and distributed systems. The message-passing concurrency model he helped develop has influenced numerous other programming languages and frameworks.
👀 Reviews
Readers consistently highlight Armstrong's clear explanations of complex distributed computing concepts. His writing style makes difficult technical material accessible without oversimplifying.
What readers liked:
- Practical examples that demonstrate real-world applications
- Focus on reliability and fault tolerance principles
- Direct, conversational tone in technical writing
- Balance of theory and implementation details
What readers disliked:
- Some code examples in older books are outdated
- Documentation could be more comprehensive
- Advanced topics sometimes lack sufficient detail
Ratings across platforms:
- Programming Erlang (2nd Ed): 4.2/5 on Goodreads (500+ ratings)
- Making Reliable Distributed Systems: 4.4/5 on Amazon (100+ ratings)
Notable reader comment: "Armstrong explains distributed computing fundamentals in a way that finally made them click. The principles apply well beyond just Erlang." - Goodreads reviewer
Common praise focuses on Armstrong's ability to convey complex ideas through simple examples and clear analogies. Critical reviews primarily note the need for updated examples and deeper coverage of certain topics.
📚 Books by Joe Armstrong
Programming Erlang: Software for a Concurrent World
A comprehensive guide to programming in Erlang, covering its syntax, concurrent programming model, and distributed systems capabilities.
Coders at Work: Reflections on the Craft of Programming A collection of interviews with notable programmers, including one with Armstrong himself, discussing their approaches to software development and career experiences.
Making Reliable Distributed Systems in the Presence of Software Errors Armstrong's PhD thesis that explains the theoretical foundations and practical implementation of fault-tolerant distributed systems using Erlang.
Getting Started with Erlang An introductory text explaining the basic concepts and practical applications of the Erlang programming language.
Coders at Work: Reflections on the Craft of Programming A collection of interviews with notable programmers, including one with Armstrong himself, discussing their approaches to software development and career experiences.
Making Reliable Distributed Systems in the Presence of Software Errors Armstrong's PhD thesis that explains the theoretical foundations and practical implementation of fault-tolerant distributed systems using Erlang.
Getting Started with Erlang An introductory text explaining the basic concepts and practical applications of the Erlang programming language.
👥 Similar authors
Bruce Tate writes about programming languages and software architecture with a focus on functional programming concepts. He covers similar themes to Armstrong regarding simplicity and fault tolerance.
Fred Hebert authored books on Erlang and distributed systems programming. His writing style combines technical depth with practical examples like Armstrong's approach.
Martin Thompson focuses on high-performance systems and low-latency computing with emphasis on message passing architectures. His work explores concurrent programming patterns that align with Armstrong's philosophy.
Dean Wampler writes about functional programming patterns and distributed computing frameworks. He examines programming paradigms through the lens of scalability and reliability like Armstrong.
Bodil Stokke produces content about functional programming languages and immutable data structures. She addresses concurrent programming challenges using approaches that parallel Armstrong's solutions.
Fred Hebert authored books on Erlang and distributed systems programming. His writing style combines technical depth with practical examples like Armstrong's approach.
Martin Thompson focuses on high-performance systems and low-latency computing with emphasis on message passing architectures. His work explores concurrent programming patterns that align with Armstrong's philosophy.
Dean Wampler writes about functional programming patterns and distributed computing frameworks. He examines programming paradigms through the lens of scalability and reliability like Armstrong.
Bodil Stokke produces content about functional programming languages and immutable data structures. She addresses concurrent programming challenges using approaches that parallel Armstrong's solutions.