Book

Programming Elixir

📖 Overview

Programming Elixir by Dave Thomas introduces readers to the Elixir programming language and its functional programming paradigm. The book serves as both a comprehensive guide for beginners and a reference for experienced programmers transitioning to Elixir. The text progresses from basic syntax and concepts through advanced topics like concurrent programming and OTP (Open Telecom Platform). Code examples demonstrate real-world applications while building knowledge of Elixir's core features. Each chapter includes exercises that reinforce the material. The book explores how Elixir leverages the Erlang virtual machine for building scalable and fault-tolerant applications. Technical topics covered include pattern matching, recursion, protocols, macros, and supervisors. At its core, Programming Elixir presents functional programming as a practical approach to modern software development challenges. The text makes a case for how Elixir's design principles enable developers to write maintainable code that can handle failures gracefully.

👀 Reviews

Readers value this book as a practical introduction to Elixir, particularly praising its clear explanations of functional programming concepts and pattern matching. Several reviewers noted the book helped them transition from object-oriented backgrounds to functional programming. Likes: - Step-by-step code examples - Coverage of OTP and concurrent programming - Exercises at end of chapters - Balance of theory and practice Dislikes: - Some code examples are outdated - Later chapters move too quickly through complex topics - Limited coverage of Phoenix framework - Advanced concepts need more depth Ratings: Goodreads: 4.2/5 (520 ratings) Amazon: 4.5/5 (168 ratings) Notable reader comments: "Made pattern matching finally click for me" - Goodreads reviewer "Great for experienced developers but not for programming beginners" - Amazon review "The OTP chapters feel rushed compared to earlier material" - Reddit discussion

📚 Similar books

Learn You Some Erlang for Great Good! by Fred Hebert This guide explores Erlang, the language that powers Elixir's underlying platform, through practical examples and in-depth coverage of concurrent programming concepts.

Designing Elixir Systems with OTP by James Gray and Bruce Tate The book demonstrates how to build production-ready Elixir applications using OTP behaviors and supervision trees.

Metaprogramming Elixir by Chris McCord The text delves into Elixir's metaprogramming capabilities through the creation of domain-specific languages and macro-based extensions.

Seven Languages in Seven Weeks by Bruce Tate The book includes Elixir among seven programming languages that demonstrate different programming paradigms and problem-solving approaches.

Concurrent Programming in ERLANG by Joe Armstrong, Robert Virding, Claes Wikström and Mike Williams The book presents fundamental concepts of concurrent programming that form the basis of Elixir's architecture and design philosophy.

🤔 Interesting facts

🔸 Dave Thomas, known as "PragDave," co-authored "The Pragmatic Programmer"—one of the most influential software development books ever written, which inspired the creation of the Agile Manifesto. 🔸 Elixir, the language covered in the book, was created by José Valim while he was recovering from repetitive strain injury (RSI) and needed a project to work on during his recovery. 🔸 The book's examples demonstrate how Elixir can handle millions of simultaneous connections on a single server, making it ideal for modern, high-concurrency applications. 🔸 The author coined the term "Code Kata" (now widely used in programming practice), and incorporates this concept of deliberate practice throughout the book's exercises. 🔸 The programming language Elixir, which is the focus of the book, runs on the Erlang virtual machine—technology that was originally developed by Ericsson in the late 1980s to handle telecommunications systems that required "nine nines" (99.9999999%) reliability.