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. Erlang is supported in most editors, including Emacs, VIM, Intellij, Eclipse, Sublime and others.
Francesco Cesarini is the founder of Erlang Solutions Ltd. He has used Erlang on a daily basis since 1995, starting as an intern at Ericsson’s computer science laboratory, the birthplace of Erlang. He moved on to Ericsson’s Erlang training and consulting arm working on the first release of the OTP middleware, applying it to turnkey solutions and flagship telecom applications. In 1999, soon after Erlang was released as open source, he founded Erlang Solutions. With offices in three countries, they have become the world leaders in Erlang based support, consulting, training, certification, systems development and conferences. Francesco has worked in major Erlang based projects both within and outside Ericsson, and as Technical Director, has led the development and consulting teams at Erlang Solutions. He is also the co-author of Erlang Programming, a book recently published by O’Reilly and lectures at Oxford University and the IT University of Gothenburg. You can follow his ramblings on Twitter.
Simon Thompson is Professor of Logic and Computation in the School of Computing of the University of Kent, where he has taught computing at undergraduate and postgraduate levels for the past twentyeight years, and where he was formerly department head for seven years and is currently Director of Research and Enterprise. His research focusses on building tools for more effective programming, including the Wrangler refactorer for Erlang.
Simon has co-authored Erlang Programming with O'Reilly Media, Miranda: The Craft of Functional Programming, Haskell: The Craft of Functional Programming and Type Theory and Functional Programming. Website: www.cs.kent.ac.uk/~sjt/; Twitter: @thompson_si.