Introduction to Erlang

Target Audience: Software Developers,

Prerequisites: Good programming skills in another language

Objectives:

  • Determine when Erlang language is an appropriate solution to your project requirements
  • Describe the 5 key attributes of an Erlang implementation
  • Describe your requirements in terms that speed up implementation
  • Lead a prototype study using Erlang
  • Structure and steer an Erlang prototype project

Duration: One day

This Erlang course will provide you with a high level overview of the issues you need to consider to decide if and when to use Erlang. You will learn to set up and lead a prototype to investigate benefits and pitfalls. You will be guided through the strengths and weaknesses of Erlang, with clear examples showing you what properties projects should have to be suitable for Erlang development.

Course Contents


This Erlang course will provide you with a high level overview of the issues you need to consider to decide if and when to use Erlang. You will learn to set up and lead a prototype to investigate benefits and pitfalls. You will be guided through the strengths and weaknesses of Erlang, with clear examples showing you what properties projects should have to be suitable for Erlang development.

LEARN HOW TO:


  • Determine when Erlang language is an appropriate solution to your project requirements
  • Describe the 5 key attributes of an Erlang implementation
  • Describe your requirements in terms that speed up implementation
  • Lead a prototype study using Erlang
  • Structure and steer an Erlang prototype project

PROGRAMME

Modules & Interfaces

The Modules and Interfaces section discusses how subsystems should be structured, looking at internal and external interfaces, inter module dependencies and data encapsulation.


Concurrency


The concurrency section looks at issues involving processes, message passing, and concurrency error handling. The strategies involved in developing a concurrent system are discussed. A look at message passing, and how errors in that area can be avoided or easily detected is covered alongside fault isolation in processes.


Coding Strategies


The coding strategies section deals with how the code should be structured so as to facilitate debugging and maintenance. Some of the issues taken up include side effects, determinism and defensive programming.


Stylistic Conventions


This section starts by covering stylistic conventions that could in theory be applied to any programming language. They include issues such as deeply nested code, long functions or modules. It then goes on to discuss Erlang specific conventions such as choice of flexible data types, variable usage, tagged values and dangerous constructs such as the process dictionary or catch and throw.


Efficiency & DO and DON'Ts


Erlang efficiency in regard to the internal virtual machine implementation is discussed here. It includes pattern matching, message passing, the usage of effective data types, and binaries when handling large amounts of data.