Proposé
Le front actuel est réalisé avec Svelte. Actuellement, aucun membre de l'équipe n'est « expert » ou particulièrement attaché à Svelte. Dans le cadre de la refonte du front de l'application Carnet de Bord, se pose la question du choix du Framework Frontend : continuons-nous avec Svelte ou changeons nous de Framework ?
Voici les limitations actuelles que nous voyons à l'utilisation de Svelte et à son implémentation dans CdB :
- Framework JS soumis a beaucoup de changements et à de nombreux breaking changes : difficile de se tenir au courant de tous les changements.
- Coût de maintenance non négligeable de par ces breaking changes.
- Utilisation de Typescript non stricte : le passer en strict demanderait un gros effort d'harmonisation du code actuel.
Ses avantages :
- Se base sur un langage connu de « tous » : Javascript.
- Communauté active.
- 100% du code Frontend de CdB est déjà écrit en Svelte.
- Familiarité : du javascript/typescript mélangé avec du AngularJS/React
Certains membres actuels ou passés de l'équipe (Vincent Jousse et Augustin Ragon notamment) ont émis l'idée d'utiliser le langage Elm pour réaliser la nouvelle version du Frontend. Elm présente plusieurs avantages :
- Absence d'erreurs à l'exécution
- Compilateur développeur friendly
- Stable et mature
- Interopérable avec Javascript
- Communauté française active
- Utilisé sur plusieurs projets du secteur public (polymny, ecobalyse, ClasseA12, ogptoolbox, deveco)
- Communauté Beta.gouv active sur ~domaine-dev-elm
- Permet d'attirer des talents
Mais aussi quelques risques :
- Langage simple mais peut être déstabilisant à apprendre (paradigme de programmation fonctionnelle)
- Vivier limité de développeurs (mais développeurs généralement de bon niveau)
Une PR intégrant Elm à l'appli Svelte existante est disponible ici.
On utilise Elm par défaut pour tout nouveau composant front développé. Pour l'existant, on continuer à utiliser Svelte. L'idée étant de ne pas réécrire ce qui a été déjà écrit en Svelte pour le « plaisir » de réécrire.