How Smartly Erlang Uses Distributed Computing
The construction of computer systems consisting of more than one computer is becoming more common. The complexity of such systems is higher than single computer systems.
To do this we have augmented the functional concurrent programming language Erlang with constructs for distributed programming. Distributed programs written in Erlang typically combine techniques for symbolic functional programming with techniques for distributed programming. In contrast to traditional imperative languages Erlang does not need interface description languages to specify the format of inter-processor messages in a heterogeneous network. This considerably simplifies distributed programming. Distributed Erlang is currently being employed in several large software projects within the Ericsson group and large messaging platforms like WhatsApp and glabbr, where I work :smiley:
Erlang is type-less in the same sense as traditional logic languages, uses pattern matching for variable binding and function selection, has explicit mechanisms to create concurrent processes and advanced facilities for error detection and recovery.
OTP (Open Telecom Platform) of Erlang is very strong. The implementation of Erlang makes simple primitives fast and scalable, and makes effective use of modern multicore environment, eliminating the need for more complex mechanisms.
Erlang’s concurrency is built upon the simple primitives of process spawning and message passing , and its programming style is built on the assumption that these primitives have a low overhead.
The processes created in Erlang are very light-weight, so very less time is required for creating and destroying the processes. The process creation time is very less (1micro-sec for creating over 2500 processes) as compared to other languages like JAVA (takes 300 micro-sec for creating small no. of processes).