Erlang’s basic features are a perfect match for massively concurrent, distributed cloud environments. Being rooted in an actor model with no shared memory, the complexity of multicore programming is hidden from the developers, allowing them to focus on the program. This tutorial will introduce Erlang and its actor model, explaining how it is positioning itself to win the multicore challenge. Basic & Sequential Erlang This section deals with Erlang data types and pattern matching. Functions, and modules are discussed. It continues by introducing recursion, with a special emphasis on different recursive patterns, including tail recursion. Concurrent Programming This section describes the creation of processes and their life span. It looks at sending and receiving messages, selective reception, and passing data in the messages. It continues with the various uses of time outs and registering processes, and terminates by showing the generic process code structure. We conclude this section by introducing the simple but powerful error handling mechanisms in processes. It looks at process links, exit signals and their propagation semantics. Multicore Programming This section guides the users through examples and scalability issues when writing programs you expect to double in speed when doubling your cores. It covers tools and programming techniques you can use to detect and avoid bottlenecks.
In order to get the most out of this tutorial, you must have a good grasp of other programming languages. Having dabbled with http://tryerlang.org is not necessary, but will help. This is a hands-on tutorial. Before arriving, download and install Erlang and get the Erlang mode for your favorite editor working. Erlang (source or binaries) can be downloaded at https://www.erlang-solutions.com/downloads/download-erlang-otp