Erlang

Erlang est un langage de programmation créé par Ericsson dans les années 90, originellement pour une utilisation dans le domaine des télécommunications. Il reprend les caractéristiques de langages classiques, comme le C (f0nctionnel et dynamiquement typé notamment), mais fonctionne sur une machine virtuelle appelée BEAM.

Il se démarque par l’utilisation d’un système de processus qui lui est propre. Ces processus sont isolés les uns des autres et communiquent entre eux uniquement à l’aide de messages asynchrones (envoi immédiat, mis dans une “boite au lettre” coté récepteur).

Pid ! Message

Une des force du Erlang est premièrement le fait que l’envoi de message est possible entre processus d’un même ordinateur, mais également entre processus distants dans le cas d’un système distribué.

Il est également possible de créer un processus superviseur qui, par l’intermédiaire de messages, gère d’autres processus. Cela permet une gestion d’erreurs plus facile que dans des langages comme Java (try, catch, …), le superviseur pouvant relancer les processus stoppés en fonction de l’erreur renvoyée par exemple. (cf image)

Source : http://ferd.ca/an-open-letter-to-the-erlang-beginner-or-onlooker.html

Pour finir, l’intérêt d’Erlang particulièrement en tant que langage serveur est sa capacité à mettre à jour les programmes sans même les arrêter. Un processus externe peut demander à un autre processus de passer d’une ancienne version à une nouvelle version d’un code ; le tout se fera sans interruption.

Dans le cas de messageries instantanées par exemple, ne pas avoir à arrêter des serveurs pour les mettre à jour est un avantage, le nombre d’utilisateur communiquant simultanément pouvant être extrêmement important, et donc, l’arrêt très coûteux. C’est une des raison qui a poussé WhatsApp et d’autres entreprises du domaine des télécommunication à utiliser Erlang l’utiliser comme langage coté serveur

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.