Phoenix, framework le plus admiré des développeurs !

Pour la deuxième année consécutive, le framework Phoenix caracole en tête de la catégorie des frameworks web du très populaire (90 000 réponses !) questionnaire “developer survey” lancé par la plateforme stackoverflow 🥳:

Phoenix is the most admired web framework and technology; more developers would choose to work with Phoenix again than those who have used the three most common: React, Node.js, and Next.js.

Chez Gassagosso, nous utilisons Phoenix en production depuis 5 ans déjà et ce résultat ne nous étonne pas. C’était un peu un pari à l’époque, mais aujourd’hui, ça fait du bien de se dire qu’on a eu le nez fin !

Pourquoi avons-nous investi sur cette technologie et pourquoi y croyons-nous davantage pour les années à venir ?

Le web d’aujourd’hui n’est plus celui du début des années 2000. Les internautes ne se contentent plus d’un simple aller/retour serveur, avec un rechargement de page complet à chaque action.

Depuis 2010, nous avons vu fleurir la mode des applications dites “single page app” (SPA), en résumé vous téléchargez une application entière dans votre navigateur, avec un résultat certes très dynamique (une fois l’application chargée…), mais aussi des coûts cachés généralement totalement aberrants.

Une SPA, c’est :
  • 🚩 des coûts financiers : 2 développements pour le prix d’un heu… de deux en fait : une application serveur de type API + une application cliente de type single page app
  • 🚩 des coûts techniques : architectures complexes, référencement à la rue, écosystème de qualité (très) variable…
  • 🚩 des coûts humains : on parle du burnout / javascript fatigue ? anyone ? ✋

Les frameworks traditionnels côté serveur tentent alors tous de trouver des solutions/pansements à ce paradoxe. Qui en intégrant des technologies javascript dans les processus de développement, qui en restant sur la lignée du web 2000, qui en se concentrant exclusivement sur la partie API 🫠.

C’est dans ce contexte que Phoenix arrive, et en 2018 il renverse la table avec son système d’interface LiveView 💫.

Grâce à Liveview, Phoenix prend le meilleur des deux mondes et permet aux développeurs de créer des applications très dynamiques, très performantes, tout en gardant la simplicité de développement d’une application traditionnelle serveur. Pour nos clients, ça se traduit par des applications aussi agréables que des single page app, au prix d’une application traditionnelle.

C’est tellement efficace, que l’on voit les autres frameworks courir après pour copier ce feeling : Laravel et LiveWire, Symfony et Live Components, Ruby on rails et Live Elements, etc. Mais à ce jour, seul Phoenix possède un socle suffisamment fertile et mature (vm erlang) pour aller jusqu’au bout de la démarche en conservant une architecture performante et très simple à exploiter 😎.

Quels sont nos critères pour évaluer l’ajout d’un nouveau framework web dans notre boîte à outils, par ordre de priorité ?

Stabilité et sécurité

🎯 nous voulons pouvoir partir (et nos clients aussi) en week-end sans craindre que la production s’effondre pendant l’anniversaire des 90 ans de la grand-mère à cause d’un système qui fonctionne sur trois pattes ou d’une faille de sécurité.

Maintenabilité

🎯 Nous accompagnons les projets de nos clients sur le long terme, ainsi nous voulons pouvoir faire évoluer du code écrit il y a parfois une dizaine d’années avec le même entrain que sur un projet tout neuf.

Apprentissage

🎯 La technologie doit pouvoir être appréhendée rapidement et facilement par les nouveaux développeurs de notre équipe.

Fonctionnalités et performances

🎯 Le framework doit répondre aux besoins des applications. Ça a l’air bateau dit comme ça, mais un mauvais choix technologique en début de projet, ça se paie très cher par la suite… Bien connaître ses frameworks, c’est garantir au projet la meilleure solution et une belle vie !

Productivité

🎯 La technologie doit permettre à nos développeurs de mettre sur le marché le plus rapidement possible et en toute sérénité les nouvelles fonctionnalités.

Comment le framework web phoenix répond à nos critères ?

✅ Sécurité et stabilité

Connaissez-vous le langage informatique Erlang ? Probablement pas 😁. Pourtant, ce langage est un des grands-pères d’internet (et d’avant) : dans trois ans nous fêterons son quarantième anniversaire (40 😮) ! La force de ce langage c’est de pouvoir traiter des milliers de tâches en parallèle. Autant vous dire qu’avec cette maturité, niveau stabilité, on est bons. Eh bien Phoenix – via le langage Elixir qui a un peu dépoussiéré Erlang – utilise l’environnement d’exécution d’Erlang.

✅ Maintenabilité

L’avantage de Phoenix, c’est qu’il tire parti du très riche écosystème Elixir/Erlang. Nul besoin d’aller chercher des technologies annexes exotiques. Tout est là. Pour nous, ça veut dire que nous pouvons concentrer notre veille technologique sur un ensemble restreint de sujets. Et les montées de versions ne sont pas un enfer car tout l’écosystème est cohérent 👍.

✅ Apprentissage

Lorsque Séverine a rejoint Gassagosso en 2020, elle n’avait jamais entendu parler de Phoenix ou d’Elixir. Or, en quelques semaines, elle était déjà en route sur les projets (et ne voulait plus entendre parler des solutions javascript type React 😉). Critère validé.

✅ Fonctionnalités et performances

Phoenix permet de créer des applications web performantes, dynamiques et sécurisées. Ça coche toutes les cases !

D’ailleurs, on vous a dit qu’après avoir révolutionné le développement front pour la prochaine décennie, l’écosystème Elixir s’apprête à démocratiser l’intelligence artificielle dans nos applications web de tous les jours avec le projet de machine learning NX ?
Honnêtement, ça va laisser des frameworks sur le carreau cette affaire, be prepared…

✅ Productivité

Nous l’avons vu, Phoenix permet de créer des applications au top sans avoir à créer des usines à gaz API + SPA. C’est bon pour la productivité (ça va plus vite à coder), c’est bon pour les développeurs (une seule technologie à appréhender), c’est bon pour la maintenance (une seule pile technique à maintenir).

Aujourd’hui, environ la moitié de nos applications est codée avec Phoenix. Nos clients en sont ravis et nous aussi.
Et l’autre moitié ? Nous utilisons d’autres solutions pour des raisons de cohérences techniques avec un système d’information existant ou des besoins applicatifs spécifiques par exemple.

Quand et à qui conseillons-nous ce framework ?

Si vous n’avez pas de contraintes spécifiques, Phoenix est vraiment notre framework recommandé pour tout projet web de startup, d’application de gestion, de site web… Du prototype à la production et la montée en charge, tout est bon, il n’y a rien à jeter, il ne vous laissera pas tomber.

Alors notre conseil ?

Ne perdez plus de temps avec les usines à gaz de 2010, osez aller chercher un poil plus loin que “dev react” ou “dev symfony”.
Ayez du flair avec nous et prenez la tête des années 2020 avec Elixir/Phoenix ✨ !

Sources :

Vous aussi vous voulez booster votre entreprise sur le web ?

Programmons un échange gratuit d’analyse de votre système d’information !