Mini-Review - Erlang Programming
Erlang Programming is probably the best book I’ve ever read about a programming language, and is worth reading even if you don’t plan to use Erlang.
The exercises in this book are helping me a lot to learn more about functional programming and recursion; also, it’s been a very good experience to use processes and “pure” functions instead of threading and shared-state.
Book contents
- Introduction: story, high level overview and cases
- Basic Erlang: data types, shell and patterns matching
- Sequential Erlang: BIFs, conditionals, recursion, libraries and error handling
- Concurrent Programming: process creation and managing, message passing, benchmarks and some theory
- Process Design Patterns: client / server, finite state machines, event managers and handlers
- Process Error Handling: process linking, exit signals, monitors and supervisors
- Records and Macros
- Software Upgrade: hot code swapping
- More Data Types and High-Level Constructs: anonymous functions, list comprehensions, binaries and references
- ETS and Dets Tables
- Distributed Programming in Erlang: communication between erlang nodes
- OTP Behaviours: introduction to generic servers, supervisors and other applications
- Introducing Mnesia
- GUI Programming with wxErlang
- Socket Programming
- Interfacing Erlang with Other Programming Languages
- Trace BIFs, the dbg Tracer, and Match Specifications
- Types and Documentation
- EUnit and Test-Driven Development
- Style and Efficiency
- Appendix - Using Erlang: installing erlang, editors and other tools
The good
- The book have a great structure that teaches the language, functional and concurrent / distributed programming with baby steps;
- It’s very well written and formatted;
- Exercises! Every programming language book should provide exercises like these - short, well defined and that sometimes challenging.
The bad
- The EUnit chapter should be in the beginning. It’s boring to compile and test things manually in the shell. Of course, you don’t need to read it in order, but still.