AXOPEN

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 pour tous nos projets ? Quels sont les avantages et les inconvénients des frameworks ? Et puis finalement… c’est quoi un framework ?

Un framework, c’est quoi ?
Les avantages 
Les inconvénients 
Cas d’utilisation
Quand ne pas utiliser un framework ?
Comment choisir un framework ?
Focus sur les frameworks Open Source
Pour conclure

framework utilisation pour ou contre

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 : Java, PHP, Javascript… et est « censé » ( on y reviendra plus tard) vous aider dans le développement d’applications 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 n’est pas pour nous déplaire !

Maintenant qu’on a une vue un peu plus dégagée sur ce qu’est 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 d’abord vers les avantages et inconvénients de leur utilisation.

Les avantages des frameworks

Utiliser un framework comporte de nombreux avantages :

  • Nous sommes cadrés ! Comme son nom l’indique, le framework nous permet d’être plus disciplinés et de ne pas partir dans tous les sens
  • Gain de temps et d’efficacité : 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 qu’un 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 l’on 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 s’en rend compte trop tard…).
  • Couche de complexité supplémentaire : selon le framework choisi et les design pattern appliqué, entrer sur la technologie peut s’avé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 n’est 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 d’utiliser un framework n’est 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 d’un framework est d’harmoniser les pratiques. Côté back, c’est presque toujours pertinent, sauf peut-être dans le cas d’un tout petit site en PHP (mais alors on peut aussi bien intégrer un WordPress).

Côté front, c’est 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 : aujourd’hui, il n’y 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 n’y a guère que le cas d’un 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 d’un framework. L’écueil est de consacrer plus de temps à choisir et paramétrer le framewor qu’à l’utiliser. Recourir à des librairies Javascript tels jQuery (qui ne sont pas des frameworks à proprement parler) peut suffire.

Un autre cas, plus rare, est celui d’une brique applicative (front, back ou client lourd) tellement spécifique et complexe qu’un framework représenterait plus une limite qu’une 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 qu’on souhaite utiliser, etc.

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

  • Le taux d’usage du framework : eh oui, dans le monde du framework plus qu’autre 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, d’entraide 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 s’est 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 qu’il y a un grand nom derrière les frameworks (exemple : Google ou Java).  Ce n’est pas forcément un gage de réussite 🙂

Focus sur les frameworks Open Source

Il existe une multitude de frameworks open source. Cela n’aurait pas beaucoup de sens de tous les citer (surtout qu’on 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é c’est Angular ! Il permet de faire une multitude d’actions, en peu de temps, et l’outil est relativement simple à prendre en main. Il reprend le meilleur des frameworks MVC côté serveur 🙂 Alors il est vrai que React est pas mal non plus, mais, après nos tests, Angular tire son épingle du jeu ( pour découvrir le combat, c’est ici : Angular VS React )

Côté back, notre coup de coeur c’est 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 API REST 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 Symfony (même si ça tend à s’améliorer), Zend et aussi Hibernate.

Conclusion : oui à l’utilisation intelligente des frameworks !

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

Mais si vous décidez d’en 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 à l’utilisation 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, l’unique 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 ?