Concurrent programming in Erlang: pre-conference workshop

  • Authors:
  • David R. Naugler

  • Affiliations:
  • Southeast Missouri State University, One University Plaza, Cape Girardeau

  • Venue:
  • Journal of Computing Sciences in Colleges
  • Year:
  • 2010

Quantified Score

Hi-index 0.00

Visualization

Abstract

Erlang is not just another general purpose functional programming language and it is not the best or most appropriate functional language for all uses. There are many worthy programming languages and the best or most appropriate depends on the intended uses. Erlang is currently the best and most appropriate functional language for writing robust, scalable, programs that can effectively use a one core processor, multicore processors, multiple processors, or trusted networks Concurrent programs in Erlang can keep running when more processors or core are added, when some fail or are removed and can be written to allow hot code swapping so updating does not even require stopping the process being updated. This can be done using significantly less code and done faster than in other languages. Erlang was designed for concurrency. The programmer can concentrate on what the processes are supposed to do and let them fail if a problem occurs. Failure of a process is a normal response, not a problem to be avoided. Much less defensive coding is required and fault tolerance is much easier to achieve. This is not magic, it is using a tool designed for the job. The Erlang programming model is to use many very lightweight processes which do not use shared memory, locks, or synchronized methods and which communicate by message passing. The processes are controlled the Erlang runtime and not by the operating system. The programmer's focus is on what the program is supposed to do and not on what can go wrong.