Erlang is a general-purpose, concurrent, declarative, functional programming language and runtime environment developed by Ericsson, a Swedish multinational provider of communications technology and services. Erlang is dynamically typed and has a pattern matching syntax. The language solves difficult problems inherent in parallel, concurrent environments. It uses sets of parallel supervised processes, not a single sequential process as found in most programming languages.
Erlang was created in 1986 at the Ellemtel Telecommunication Systems Laboratories for telecommunication systems. The objective was to build a simple and efficient programming language resilient large-scale concurrent industrial applications.
Besides telecommunication systems and applications and other large industrial real-time systems, Erlang is particularly suitable for servers for internet applications, e-commerce, and networked database applications. The versatility of the language is, in part, due to its extensive collection of libraries.
The language is released under an open source license, initially the Erlang Public License, now supplanted by the Apache License 2.0.
We publish a series covering the best open source programming books for other popular languages. Read them here.
By J. David Eisenberg (128 pages)
Études for Erlang provides descriptions of programs that you can write in Erlang. The programs are typically short, and each one is designed as practice material for a particular Erlang programming concept. These programs have not been designed to be of considerable difficulty, though they may ask the reader to stretch a bit beyond the immediate material and examples that are found in the book Introducing Erlang.
Example programs cover:
This book is released under an open source license.
By Bjarne Däcker, Robert Virding (46 pages)
The Erlang Handbook is a concise summary of the language features and the runtime system. It’s aimed at people with some programming experience, serving as a quick introduction to the Erlang domain.
The book focuses on the following areas:
This text is made available under a Creative Commons Attribution-ShareAlike 3.0 License. The handbook is typeset using LaTeX.
By Fred Hébert (93 pages)
Stuff Goes Bad: Erlang in Anger is a compilation of tips and tricks to help understand where failures come from, and a dictionary of different code snippets and practices that helped developers debug production systems that were built in Erlang.
The first three chapters explore writing applications:
The next three chapters focus on diagnosing applications:
The book is published under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
By Ericsson AB (387 pages)
This is the official reference manual for Erlang, written by the developer of the language. OTP (Open Telecom Platform) is a large collection of libraries for Erlang to do everything from compiling ASN.1 to providing a web server.
This work is licensed under the Apache License, Version 2.0.
By Ericsson AB (58 pages)
As its name suggests, this book is a “kick start” tutorial to get you up and running with Erlang.
It tells only the simplest form of the syntax, simplifies material, and omits things like references, local error handling, and single direction lines. But it’s a great place to begin your adventures with the language.
By Wikibooks (HTML)
Erlang Programming provides a good overview of this functional programming language.
The book has sections on basic Erlang, basic OTP, intermediate Erlang, object programming, popular modules, software engineering, advanced OTP, thinking in parallel, and advanced Erlang.
The text is available under the Creative Commons Attribution-ShareAlike License.
NOTE: The following books are free-to-download but do not appear to be released under an open source license.
- Concurrent Programming in ERLANG – the PDF version does not get off to the best start with page 2 stating “This page is intentionally plank (sic)”, but this is a recommended text.
- Learn You Some Erlang for great good – the author’s FAQ says the book it’s open source, but the terms are not made clear. I’ve sent an email to the author of the book, and will update if a reply is received.
- Making reliable distributed systems in the presence of software errors – an excellent thesis.