Erlang, Elixir, OTP, BEAM, concurrence

Xavier Van de Woestyne

derniercri.io (Fait en OCaml... mais tout le monde s'en fiche :v)

Roadmap

Mise en contexte

On va parler de concurrence

Erlang

On va un peu parler de Erlang...

OTP

C'est ici que la magie opère :v

BEAM

Le futur de Erlang et ce qu'il amène !

Mise en context

Les machines sont de plus en plus puissantes !

De plus en plus d'unité de calcul

Oui et une table n'est pas un mobilier...

La programmation concurrente

On admet qu'un programme informatique est une collection de piles sémantiques ordonnancées avant
d'être exécutés dans pile d'exécution ;

Derrière tout concept, il existe un formalisme

Le modèle Acteur de Carl Hewitt

On considère les acteurs comme les seules fonctions primitives nécéssaires pour la programmation concurrente.
Les acteurs communiquent par envoi/réceptions de messages. En répondant à un message, un acteur peut effectuer un calcul,
instancier d'autres acteurs ou envoyer d'autres messages.
(Il existe une certaine homologie entre les acteurs et les objets qui eux aussi communiquent par envoi/réception de message...)
Un des apports principaux du modèle acteur est que, quand il est implémenté dans un langage,
il fournit une abstraction sur des mécanismes liés à l'exécution simultanée.
Cette abstraction permet généralement de s'affranchir de concepts/outils complexes,
comme par exemple la synchronisation par verrou Et il peut être implémenté à niveau logiciel..

Représentants du genre

La concurrence ... en bref

Erlang

Dans les années 80, chez Ericsson

Bye bye ADA, ils ont besoin d'un langage pour les télé-communications:

Erlang est développé (avec une toute petite équipe) en extension à la thèse
de Joe Armstrong pour répondre à ces problématiques.

Caractéristiques du langage

Quelques success-stories

De JAM à BEAM

C'est en partie à cause (ou grâce) à JAM que la syntaxe de Erlang est ... déroutante.

OTP : Open Telecom Platform*

Une bibliothèque standard + une collection d'outils + une collection d'architecture applicative.
* Ce nom n'est plus réellement pertinent.

Constituants majeurs

OTP comme une collection de foncteurs applicatifs

Comportements et classes statiquement abstraites.
Comme les acteurs fournissent une abstraction, les comportements OTP permettent
d'implémenter des cas de figures complexes au moyen d'interfaces communes.

Workers génériques proposés

OTP est une collection de "design-principles" éprouvée
et hautement réutilisable !

BEAM, la VM

Bogdan/Björn's Erlang Abstract Machine

Caractéristiques

VM = byte-code donc potentiellement
plusieurs langages

Et... Elixir ?

Que peut-il apporter ?

Pourquoi continuer à faire du Erlang

FIN ! (Un peu bref sur la fin, n'est-ce pas?)

Questions ? Discussions ?



Icones: simpleicons.org