
Erlang is the language of choice for programmers who want to write robust, concurrent applications, but its strange syntax and functional design can intimidate the uninitiated. Luckily, there’s a new weapon in the battle against Erlang-phobia: Learn You Some Erlang for Great Good! Erlang maestro Fred Hébert starts slow and eases you into the basics: You’ll learn about Erlang’s unorthodox syntax, its data structures, its type system (or lack thereof!), and basic functional programming techniques. Once you’ve wrapped your head around the simple stuff, you’ll tackle the real meat-and-potatoes of the language: concurrency, distributed computing, hot code loading, and all the other dark magic that makes Erlang such a hot topic among today’s savvy developers. As you dive into Erlang’s functional fantasy world, you’ll learn about: –Testing your applications with EUnit and Common Test –Building and releasing your applications with the OTP framework –Passing messages, raising errors, and starting/stopping processes over many nodes –Storing and retrieving data using Mnesia and ETS –Network programming with TCP, UDP, and the inet module –The simple joys and potential pitfalls of writing distributed, concurrent applications Packed with lighthearted illustrations and just the right mix of offbeat and practical example programs, Learn You Some Erlang for Great Good! is the perfect entry point into the sometimes-crazy, always-thrilling world of Erlang.
OTP stands for Open Telecom Platform, although it's not that much about telecom anymore (it's more about software that has the property of telecom applications, but yeah.) If half of Erlang's greatness comes from its concurrency and distribution and the other half comes from its error handling capabilities, then the OTP framework is the third half of it.
Then there is the BEAM book[3] which provides an deep dive into Erlang and the BEAM virtual machine.
I'm not the best person to ask since I'm only starting out on Erlang! I much prefer to code visually :)
[1] https://learnyousomeerlang.com [2] https://www.heroku.com/blog/erlang-in-anger/ [3] https://blog.stenmans.org/theBeamBook/
Much better than Learn X in Y min
But yeah, I find writing servers and other such systems with many moving parts that can be reasonably modeled as Actors passing messages between themselves in Erlang to be so, so, so enjoyable.
If you're interested in picking up the language, I'd recommend Learn You Some Erlang [0]. It's a bit out of date (for instance, it talks about "maps" as being a new thing that's being designed, but they've been in the language for ages), but it's still a really good introduction to the fundamentals of the language and its runtime system. Fred Hebert is generally a good technical writer, so taking a look through his blog is also generally recommended.
The Erlang docs are also good. The top-level directory is here [1], and you if you're not looking for desk reference docs, you might start reading at either "Getting Started" [2] or maybe "Design Principles" [3]. Learn You Some Erlang covers a fair bit of what's in those two sections, but sometimes it's helpful to see the same information written another way.
[0] <https://learnyousomeerlang.com/>
[1] <https://www.erlang.org/docs>
[2] <https://www.erlang.org/doc/system/getting_started.html>
[3] <https://www.erlang.org/doc/system/design_principles.html>
