Ce qu'Erlang peut nous apprendre sur la programmation concurrente

Ce mois-ci Yann nous sortira son plus beau costume à paillettes pour nous parler d'un sujet léger. Voici de quoi cela va parler:

 

Erlang est un langage fonctionnel moustachu à l'accent suédois  (http://www.youtube.com/watch?v=uKfKtXYLG78 ) créé à l'origine pour construire les systèmes télécom d'Ericsson.


Erlang est réputé pour la bizarrerie de sa syntaxe et l'extrême robustesse des applications massivement concurrentes qu'il permet de créer. Nous nous proposons modestement d'illustrer ces allégations et de montrer qu'une d'entre elles est exagérée (il faudra assister à la présentation pour savoir laquelle).


Nous nous livrerons à une rapide présentation du langage lui-même (et hop, une liste à puces)


  • Fonctionnel
  • Syntaxe inspirée de Prolog
  • Structures de données immutables
  • Pattern matching
  • Boucles remplacées par la récursivité, les map/reduce (fold) et les list comprehensions



Avant de passer au plus intéressant : le modèle acteur au coeur du framework OTP (Open Telecom Platform) d'Erlang qui, allié aux particularités du runtime, permet d'implémenter des applications concurrentes, robustes et dynamiques.


Le modèle acteur d'Erlang se caractérise par (encore une liste à puces !)

  • des processus légers (quelques dizaines de Ko d'empreinte mémoire)
  • qui s'échangent des messages de manière asynchrone
  • chaque processus recevant les messages dans sa propre mailbox


Les processus peuvent eux-mêmes être définis par des graphes de dépendances auxquels on associe des règles de comportement en cas d'erreur (destruction du processus en erreur et de ses sous-processus, relance, etc.).


OTP bâtit sur ce modèle acteur pour proposer des implémentations de patterns concurrents (événements, serveur, automate à états finis, etc.) 
Nous verrons comment ce modèle simplifie énormément les systèmes concurrents, et comment Erlang et OTP peuvent être une inspiration pour des implémentations dans d'autres langages et framework (dont pourquoi pas .NET !)

-Yann-

 

Merci Yann et merci à Arnaud/Cellenza pour l'hébergement!

Rui

Join or login to comment.

  • Pablo Fernandez D.

    Excellente introduction à la découverte d'Erlang.

    June 11, 2013

  • A former member
    A former member

    Merci pour cette présentation pleine d'infos intéressantes !

    June 7, 2013

  • Rui C.

    Comme d'habitude Yann a démystifié un truc poilu, merci!

    June 7, 2013

  • kévin L.

    Présentation complète, très bonne entrée en matière sur Erlang.

    June 7, 2013

  • Rui C.

    Merci Yann, c'était top!

    1 · June 7, 2013

  • Yann S.

    Merci d'avoir tenu jusqu'au bout. La présentation : http://www.slideshare.net/abolibibelot/introduction-erlang-altnet-fr-juin-2013

    1 · June 6, 2013

  • Yann S.

    Alors pour info, c'est bien au 156 boulevard Hausmann, c'est bien chez Cellenza, mais c'est Xebia qui est indiqué dans l'immeuble (première à gauche, 6ème étage)...

    June 6, 2013

  • Thomas P.

    C'est avec grand regret que je décline ma participation a cette présentation de Yann sur ERLANG. J'ai hâte de lire les CR!

    June 6, 2013

  • Robert

    Sorry, still a bit ill won't be able to make it.

    June 6, 2013

  • Mathieu R.

    Aie, j'avais oublié j'ai une réunion ce soir. Dommage ;)

    June 6, 2013

  • Yann S.

    Ca a l'air bien, je vais venir

    May 15, 2013

    • Rui C.

      ah zut, en prenant l'abstract tel quel je crois que j'ai oublié une information essentielle ;-)

      May 15, 2013

Our Sponsors

People in this
Meetup are also in:

Create your own Meetup Group

Get started Learn more
Henry

I decided to start Reno Motorcycle Riders Group because I wanted to be part of a group of people who enjoyed my passion... I was excited and nervous. Our group has grown by leaps and bounds. I never thought it would be this big.

Henry, started Reno Motorcycle Riders

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy