Pourquoi A World For Us s’est tourné vers Elixir et Phoenix pour développer Digiforma ?

Digiforma fonctionne depuis sa création grâce à la technologie Elixir et au framework Phoenix et dans cet article, j’ai décidé de vous expliquer pourquoi nous avons fait ce choix.

Elixir, qu’est-ce que c’est ?

Selon le site d’Elixir, il s’agit d’un « langage dynamique et fonctionnel pour construire des applications évolutives et faciles à mettre-à-jour ».
Il se compile en Erlang et tourne sur BEAM, une machine virtuelle conçue pour être capable de traiter de nombreuses connexions simultanément afin de répondre aux besoins des réseaux de télécommunication, ce qui en fait un langage idéal pour le Web.

Ainsi, (au risque de me répéter), Elixir s’adapte facilement à l’augmentation du nombre d’utilisateurs grâce à la légèreté des processus qui peuvent être nombreux à tourner en même temps sur le même serveur.

L’exécution simultanée de fil de tâches permet d’optimiser la vitesse d’exécution des programmes sans nécessiter trop d’intervention de la part du développeur. Afin d’avoir l’avis d’un utilisateur quotidien d’Elixir, j’ai demandé à l’un de nos développeurs ce qu’il appréciait tant dans ce langage, ce à quoi il m’a répondu sans la moindre hésitation : « Le code d’Elixir est avant tout explicite et très lisible. Je trouve également un avantage à manipuler des données pures c’est-à-dire à écrire des fonctions sans effets de bords qui facilitent la compréhension du code. »

(Sources : mobiskill , boowiki )

Phoenix : le Framework Elixir

Phoenix est un outil populaire écrit en Elixir et utilisé avec ce langage. Côté serveur, Phoenix utilise un schéma proche du Model View Controller. A l’image d’Elixir, il a été conçu pour fournir des applications capables de fonctionner avec un très grand nombre d’utilisateur. Phoenix est utilisé pour permettre aux développeurs de faire du Web avec Elixir.

Phoenix permet une meilleure productivité et fournit aux développeurs :

  • Un cadre d’architecture proche du MVC, stable, moderne et performant
  • Un outil de manipulation des bases de données (Ecto)
  • Un écosystème de bibliothèques tierces riche
  • Une gestion native des websockets
  • Optionnellement une approche très innovante du développement web avec LiveView qui permet de s’affranchir de développements javascript y compris pour des applications très dynamiques

(source : symbiose.com )

Les sociétés connues qui utilisent Elixir ou BEAM

Interview d’Henri Morlaye, développeur et co-fondateur d’A world for us

Maintenant que nous sommes incollables sur Elixir, venons-en au cœur du sujet qui nous intéresse. Afin de savoir pour quelles raisons, nous avions choisi cette technologie pour développer Digiforma, je me suis tourné vers le principal intéressé.

Au commencement de Digiforma, as-tu immédiatement pensé à te tourner vers Elixir pour son développement ?

Ce qu’il faut savoir, c’est qu’avant Digiforma, j’ai travaillé sur pas mal d’autres projets avec d’autres technologies, Node.js, Ruby on Rails, Django etc. J’ai essayé pas mal de technologies récentes et Elixir s’est avéré être le choix le plus pertinent par rapport à notre objectif avec Digiforma.

Que recherchais-tu précisément que tu ne trouvais pas ailleurs ?

Je recherchais un Framework full stack qui soit la référence pour les utilisateurs du langage sur lequel il est basé. Il n’y en n’a pas beaucoup dans ce cas. Quand on parle de framework bien conçu, complets et très maintenus, on a par exemple Ruby on Rails, Symphony en PHP, Django en Python…  En réalité, mon choix s’est plus porté sur Phoenix que sur Elixir. Il faut savoir qu’Elixir a été créé par des anciens de Ruby On Rails qui ont vu les limites de Rails et ont tentés de solutionner ces problèmes en créant Elixir/Phoenix. Pour ça, ils ont utilisé BEAM, une machine virtuelle performante qui est incroyablement stable et bien maintenue donc avec des améliorations régulières et une gestion très rapide des dysfonctionnements.

Une autre qualité forte d’Elixir est qu’il s’agit d’un langage fonctionnel. Ce qui signifie qu’au lieu de manipuler des objets qui ont chacun un état, on va créer des fonctions qui traitent simplement des données immutables. C’est beaucoup plus clair et linéaire, en cas de dysfonctionnement, il suffit de regarder la donnée au moment où le dysfonctionnement a eu lieu pour en retrouver l’origine. Toute une classe de bugs disparaît.

En résumé, j’ai choisi Elixir car il s’agit d’un langage fonctionnel, simple et compréhensible et basé sur une bonne machine virtuelle (BEAM), avec un excellent framework web populaire parmi les utilisateurs du langage.

Elixir n’est pas très populaire, comment as-tu été mené à choisir cette technologie ?

Elixir n’est pas très populaire en France c’est vrai, mais il est déjà bien plus développé aux Etats-Unis par exemple. Quand tu développes dans l’univers de Ruby on Rails, tu es par ailleurs très au courant de ce qu’il se passe du côté de Phoenix et d’Elixir.

Quels sont les inconvénients principaux de cette technologie ?

Quand on a commencé en 2016, Phoenix n’était pas encore totalement stable, il y a eu pas mal d’améliorations et de changements au début. Ce problème est résolu maintenant et c’est bien plus stable.

Après, on a l’impression que c’est difficile de recruter dans cette technologie, mais la réalité est qu’aujourd’hui, peu importe la technologie demandée, le recrutement est compliqué. Je rajouterais que je ne recherche pas un développeur spécialisé dans Elixir car il n’est pas difficile pour un bon développeur d’appendre un nouveau langage, surtout s’il s’agit d’un langage fonctionnel.

Percevais-tu Elixir comme un choix sûr ou plutôt comme un pari ? Est-ce que ça a payé ?

Pour être tout à fait sincère, je n’envisageais pas qu’on ait un jour une telle croissance, je ne pensais pas qu’on grandirait autant et aussi vite, les considérations comme la difficulté de recrutement ne rentraient pas en compte… après oui, on peut dire que c’était un pari. Aujourd’hui, les difficultés qu’on peut rencontrer au quotidien ne sont jamais liées à la technologie qu’on utilise donc on peut dire que ce pari a fonctionné. C’est très satisfaisant de savoir qu’on utilise un bel outil qui est puissant. On sait qu’on pourra aller loin avec et il nous accompagnera loin, ça c’est vraiment agréable.

Après plusieurs années sur Digiforma, quel retour as-tu sur Elixir/Phoenix et si tu devais refaire le choix aujourd’hui est-ce que tu referais le même ?

Oui, je le referais sans hésiter. C’était vraiment un bon choix et je le conseille à toutes les sociétés tech qui ont un peu les mêmes besoins que Digiforma.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.