Les frameworks : pour ou contre ?

Dans le monde de la programmation web, ces dernières années ont donné lieu à une explosion pure et simple des frameworks ! Ils ont progressivement pris une place considérable dans nos vies de développeurs, et pourtant… faut-il vraiment les utiliser
Camille.jpg
Camille REGNAULT, L'animatrice du podcast ITMis à jour le 21 Juin 2018
frameworks.jpg

Dans le monde de la programmation web, ces dernières années ont donné lieu à une explosion pure et simple des frameworks ! Ils ont progressivement pris une place considérable dans nos vies de développeurs, et pourtant faut-il vraiment les utiliser pour tous nos projets ? Quels sont les avantages et les inconvénients des frameworks ? Et puis finalement cest quoi un framework ?

Un framework, c’est quoi ?

Un framework, traduit littéralement, ça nous donne un cadre de travail. Pour faire simple, c’est un ensemble de composants qui structure votre application et qui contraint la manière dont vous allez la développer.

Un framework est toujours associé à un langage de programmation : JavaLangage de développement très populaire !, PHP, Javascript et est « censé » ( on y reviendra plus tard) vous aider dans le développement dapplications web.

Il existe plusieurs types de frameworks :

  • Les frameworks Open Source: ils sont développés et maintenus par une communauté plus ou moins ouverte selon les plateformes
  • Les frameworks maison : ils sont développés en interne par les entreprises, sur la base de leur expérience.
  • Les frameworks propriétaires : ce sont des frameworks payants développés par des éditeurs de logiciels.

Pendant un temps, la mode était de développer des frameworks maison. Aujourd’hui, on voit de plus en plus émerger des frameworks open source, et ce nest pas pour nous déplaire !

Maintenant quon a une vue un peu plus dégagée sur ce quest un framework, entrons dans le vif du sujet : dois-je ou non utiliser un framework pour développer mon projet ?

Pour répondre à cette question, tournons-nous dabord vers les avantages et inconvénients de leur utilisation.

video: https://www.youtube.com/embed/-HoSjmLY7fo

Les avantages des frameworks

Utiliser un framework comporte de nombreux avantages :

  • Nous sommes cadrés ! Comme son nom lindique, le framework nous permet dêtre plus disciplinés et de ne pas partir dans tous les sens
  • Gain de temps et defficacité: le framework apporte de nombreux outils qui permettent de ne pas réinventer la roue pour toutes les fonctionnalités courantes
  • Meilleure structuration du code : le cadre et les directives fournies par les frameworks permettent de donner une structure et par conséquent, d’améliorer la qualité du code. Ils permettent de construire une unité cohérente.
  • Maintenance simplifiée: un projet bien structuré est infiniment plus simple à maintenir quun projet fourre-tout.

Les inconvénients des frameworks

Utiliser des frameworks comporte également de nombreux inconvénients :

  • Limites sur les fonctionnalités complexes : eh oui, redisons-le, un framework, ça cadre et de fait, ça limite ! Si lon souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, on rencontre très vite des problèmes. (exemple avec Hibernate : certaines structures de requêtes SQL ne sont pas du tout possibles, ce qui est légèrement ennuyeux si on sen rend compte trop tard…).
  • Couche de complexité supplémentaire: selon le framework choisi et les design pattern appliqué, entrer sur la technologie peut savérer complexe pour un développeur moyen. Il peut donc être intéressant de prévoir du temps de formation, ou de choisir une solution plus basique.
  • Mise à jour des nouvelles versions à gérer en plus de la stack applicative de base : eh oui, qui dit couche supplémentaire dit cycle de vie supplémentaire à gérer et ce nest pas une mince affaire !

Pourquoi utiliser ou ne pas utiliser un framework ?

Au vu des différents avantages et inconvénients mentionnés, on voit bien que la balance est relativement équilibrée et que donc prendre la décision dutiliser un framework nest pas totalement limpide. A ce stade, il devient intéressant de différencier le front end du back end.

Quand utiliser un framework ?

L’objectif principal dun framework est dharmoniser les pratiques. Côté back, cest presque toujours pertinent, sauf peut-être dans le cas dun tout petit site en PHPLangage de programmation s’exécutant côté serveur et permettant la création dynamique de pages web ou d'APIs. (mais alors on peut aussi bien intégrer un WordPress).

Côté front, cest plus discutable. Il y a quelques années, les frameworks front end étaient encore peu répandus et la question ne se posait même pas. Mais leur essor spectaculaire a changé la donne : aujourdhui, il ny a aucun sens à développer une application web de gestion sans framework. On le recommande également dans le cadre de sites web un peu conséquents, avec un nombre important d’écrans, de pages, d’actions.

Quand ne pas utiliser un framework ?

Côté back, comme nous venons de le dire, il ny a guère que le cas dun site perso en PHP qui puisse justifier de ne pas utiliser de framework (et encore).

Côté front, un site vitrine ou autre création web sans grande interaction utilisateur peut se passer dun framework. Lécueil est de consacrer plus de temps à choisir et paramétrer le framewor quà lutiliser. Recourir à des librairies Javascript tels jQuery (qui ne sont pas des frameworks à proprement parler) peut suffire.

Un autre cas, plus rare, est celui dune brique applicative (front, back ou client lourd) tellement spécifique et complexe quun framework représenterait plus une limite quune aide. Mais soyons clairs, ce genre de cas ne se rencontre que sur des problématiques de R&D, donc loin du tout venant.

Comment choisir un framework ?

Pour choisir un framework adapté à son projet, pas de secret : il faut définir en amont le cadre du projet. Définir le cadre pratique, les features quon souhaite utiliser, etc.

De notre côté, pour bien choisir notre framework avant de débuter un projet, on sintéresse surtout aux deux indicateurs suivants :

  • Le taux d’usage du framework : eh oui, dans le monde du framework plus quautre part ailleurs, nous avons un taux de perte important. Beaucoup sont abandonnés et viennent à ne plus être maintenus il faut donc faire attention et essayer de choisir entre les 2/3 frameworks les plus utilisés sur le segment voulu.
  • La communauté : plus la communauté est importante, plus il y aura de forums, dentraide et vous trouverez plus facilement les réponses à vos problématiques.

A ce stade, on se permet de faire également un petit point rouge car on sest fait avoir par le passé et on aimerait pas que ça vous arrive Alors, faites attention, lors du choix de votre framework à ne pas foncer tête baissée sous prétexte quil y a un grand nom derrière les frameworks (exemple : Google ou Java). Ce nest pas forcément un gage de réussite 🙂

Focus sur les frameworks Open Source

Il existe une multitude de frameworks open source. Cela naurait pas beaucoup de sens de tous les citer (surtout quon peut noter des disparitions régulières), alors voici simplement un petit panorama des plus grands noms du moment, selon leur fonction : backend ou frontend.

BACK FRONT
Java JEE, Spring Boot, Hibernate
Javascript NodeJS, Express Angular, React, VueJS
PHP Symfony, Laravel
Windows .NET

Selon les projets et les besoins, le choix du framework est discutable et va de la bonne appréciation de chacun.

Nos frameworks préférés

Côté front, notre petit préféré cest Angular ! Il permet de faire une multitude dactions, en peu de temps, et loutil est relativement simple à prendre en main. Il reprend le meilleur des frameworks MVC côté serveur 🙂 Alors il est vrai que ReactReact est un framework de développement JavaScript populaire. est pas mal non plus, mais, après nos tests, AngularAngular est un framework de développement JavaScript populaire basé sur TypeScript. tire son épingle du jeu ( pour découvrir le combat, cest ici : Angular VS React )

Côté back, notre coup de coeur cest Spring Boot ! C’est un framework très performant, productif et qui bénéficie de toute la légèreté de Spring ! En très peu de lignes de code, on arrive à faire des APIUne API est un programme permettant à deux applications distinctes de communiquer entre elles et d’échanger des données. RESTREST (REpresentational State Transfer) est un style d'architecture logicielle qui fonctionne sous un certain nombre de contraintes. et JSON de manière efficace, et rapide. Bref, c’est très agréable, on recommande 🙂

Du côté des frameworks qui nous ont moins plu, on retiendra SymfonyFramework PHP permettant de développer des applications web. (même si ça tend à s’améliorer), Zend et aussi Hibernate.

Conclusion : oui à l’utilisation intelligente des frameworks !

Pour conclure, ce nest pas parce quon entend beaucoup parler des frameworks que leur utilisation est obligatoire ! NON, ce nest pas une évidence d’utiliser un framework pour son projet, tout dépend du projet 🙂

Mais si vous décidez den utiliser, laissez-vous aller dans la philosophie de l’outil et ne vous entêtez pas à essayer de bidouiller le cadre pour faire quelque chose qui n’est pas prévu initialement. Laissez-vous guider simplement par le framework ( et si vous ne voulez pas adhérer, ne prenez pas de framework tout simplement 😉 )

En bref, OUI à lutilisation intelligente et mesurée des frameworks !

Mais veillez aussi à changer souvent : pour ceux qui restent bloqués des années sur le même framework, la tentation est grande de penser que la manière de travailler que celui-ci propose est la seule, lunique et de loin la meilleure. Multiplier les expériences est la meilleure manière de prendre de la hauteur !

Et vous, vous utilisez des frameworks ?