En commençant la programmation, on découvre HTML, CSS, PHP, JavaScript… Mais rapidement, on entend aussi parler de Symfony, Spring, Laravel, Angular... Ce ne sont pas des langages de programmation, mais des frameworks. On décrypte tout ça pour vous !
Qu'est-ce qu'un framework ?
Littéralement, un framework signifie “cadre de travail”. Véritable boîte à outils des temps modernes, ce kit de composants logiciels structurels permet aux développeurs d’être plus efficaces dans la conception d'applications web, entre autres, en offrant une architecture et des composants logiciels prêts à l’emploi et réutilisables.
On pourrait comparer un framework à une usine de voitures. La voiture serait le produit final, et le framework serait l’usine. Dans cette usine, on a déjà tout ce qu’il faut en stock : les robots, les postes de travail, les composants d’une voiture (comme le volant ou encore les roues), etc. Et parmi ses éléments, on va venir chercher ceux dont on a besoin pour les réutiliser.
Une fois ce squelette d’application ou de logiciel (le fameux “framework”) produit, les autres développeurs n'ont plus besoin de réinventer la roue à chaque nouveau projet. On peut notamment se pencher sur le concept DRY : Don’t Repeat Yourself, en français “Ne vous répétez pas”. Le DRY est “une philosophie en programmation informatique consistant à éviter la redondance de code au sein d’une application afin de faciliter la maintenance, le test, le débogage et les évolutions de cette dernière.”
Les frameworks sont généralement conçus par une communauté de développeurs. Ils fonctionnent par langage de programmation et permettent de développer tous types de supports : applications mobiles, logiciels de bureau, plateformes web, jeux vidéo, etc. Mais l’on peut également créer son propre framework.
Il existe différentes parties dans les frameworks, on peut citer par exemple les outils d’authentification, de gestion de base de données, d’affichage ou encore d’interaction utilisateur.
Il faut avoir en tête qu’un framework répond à un besoin précis. Et pour choisir celui qui nous convient le plus, il faut définir efficacement son besoin en amont.
Pourquoi utiliser un framework ?
les avantages d’un framework
Gain de temps, de productivité, travail en équipe facilité, l'utilisation d'un framework comporte de nombreux avantages, dont voici les principaux :
- Gagner du temps
Les frameworks permettent de gagner du temps ! En effet, ils évitent aux développeurs de devoir tout développer de A à Z, c’est-à-dire réécrire ou réinventer chaque ligne de code (concept DRY). Grâce aux frameworks, les développeurs peuvent se concentrer sur la réalisation de fonctionnalités spécifiques à leur projet plutôt que de passer du temps sur des choses récurrentes à chaque projet comme l’architecture, la sécurité de base de l’application, etc.
- Avoir un cadre de travail clair et organisé
Un framework fournit une hiérarchie de fichiers et dossiers optimisés. Grâce à cette séparation et classification de fichiers, l’interface s’en voit plus claire et son utilisation simplifiée - pour qui sait l’utiliser. Si les guidelines du framework sont respectées, on obtient alors une structure et une unité cohérente au code afin d’en améliorer sa qualité.
- Être plus efficace et optimiser le travail en équipe
Un framework de développement met à disposition diverses architectures formalisées en fonction des besoins. Le développement en équipe est donc facilité, et la répartition des tâches au sein de cette même équipe est plus simple puisque chacun a sa “zone” de travail.
Lorsqu'un développeur arrive dans une équipe travaillant sur un framework déjà établi et qu’il maîtrise, il trouvera ses repères plus facilement et plus rapidement. Si l'on reste sur notre comparaison du véhicule, la difficulté serait ici d’apprendre à conduire, mais une fois chose faite, passer d’un véhicule à un autre est un “jeu d’enfant”. Il en est de même pour le framework, une fois que l’on sait le manipuler, passer d’une application basée sur ce cadre de travail a une autre est simplifié, car l’architecture reste inchangée.
- Assurer une maintenance et une évolution optimales
Un framework étant développé par un groupe de développeurs ou par des organismes privés, la maintenance et les évolutions de ce dernier sont d’autant plus optimales et les mises à jour régulières.
En utilisant un framework, il n’y a plus vraiment à se soucier des derniers standards du web, des nouvelles compatibilités entre services, etc. La communauté s’occupe de “tout” et met elle-même à jour l'outil. Autant de choses en moins à penser pour l’équipe de développement web qui peut ainsi consacrer ce gain de temps dans la recherche de valeur ajoutée et le développement du projet en lui-même.
- Accroître et optimiser la sécurité
La plupart du temps, le framework couvre et permet de se prémunir d’une grande partie des failles de sécurité rencontrées lors de la conception d’une application.
Cela n'empêche cependant pas les développeurs d’intervenir si nécessaire et d’optimiser la sécurité et la performance de leur application, en surchargeant les fonctionnalités pré-établies par le framework.
-
Une communauté d’utilisateurs “infini”
Vous êtes rarement seul à utiliser un cadre de travail spécifique. Si vous rencontrez un problème, un bug ou si vous vous posez des questions précises, la communauté d'utilisateurs est là pour vous aider. Une recherche efficace sur Stack Overflow (entre autres), et la solution sera probablement devant vos yeux.
Pour vous donner une idée, Symfony ou React sont des frameworks utilisés par plus d’un million de développeurs, autant de personnes qui pourront vous aider en cas de blocage.
les inconvénients d’un framework
- Différentes courbes d’apprentissage
Maîtriser un framework peut prendre du temps et ce n’est pas simple du tout ! Toutefois, chaque framework est doté de sa propre courbe d’apprentissage : certains permettent au développeur de monter en compétences rapidement tandis que d’autres nécessitent un temps d’apprentissage plus long. - La connaissance des concepts généraux
Pour comprendre et interpréter correctement les principes de base des frameworks et effectuer des choix techniques judicieux, il est indispensable de maîtriser à minima les concepts généraux de fonctionnement interne, de comprendre les bonnes pratiques et, bien entendu, d’avoir une connaissance correcte du langage et du concept de programmation utilisés par le framework. -
Des limites sur les fonctionnalités complexes
Comme son nom l’indique, un framework est un cadre de travail. Il existe donc certaines limites d’utilisation. Par exemple, il nous impose souvent ses propres choix en termes d’architecture de code. Lorsqu’un développeur web souhaite accéder à des fonctionnalités du langage qui ne sont pas gérées par le framework, il peut rencontrer des difficultés. Le conseil que l’on peut donner à un développeur qui souhaite utiliser un framework est de se laisser guider par ce dernier. -
Ils sont trop tentants !
Ils nous donnent l’impression que tout est plus simple grâce à eux, mais il n’y a rien de plus faux ! Ils imposent une architecture lourde et complexe aux applications, alors qu'elles n’en ont parfois pas besoin.
Quel qu'il soit, le framework répond à un besoin précis, et avancé ! Inutile d’utiliser une Ferrari pour aller acheter son pain au bout de la rue. C’est pareil pour les frameworks : si vous souhaitez faire un site statique avec quelques pages, ils vous complexifient la tâche plus qu’ils ne vous la simplifient, les technos de base HTML/CSS et JS vous suffiront !
Gardez en tête une chose : avant de vous lancer, définissez efficacement votre besoin afin d'établir une véritable nécessité à l’utilisation d’un cadre de travail spécifique.
Quels sont les différents types de frameworks ?
Avant toute chose, il est important de savoir que les frameworks ne sont pas en concurrence les uns les autres mais que chacun d’entre eux répond à un besoin spécifique.
En PHP, deux sortent du lot : Symfony et Laravel
Symfony, lancé en 2005 par Fabien Potencier et aujourd’hui maintenu par SensioLabs, est un framework de renommée mondiale, bien que majoritairement utilisé par une communauté francophone. Découvrez les nombreuses applications qui utilisent ou reposent sur le projet Symfony.
Laravel, lancé en 2011 par Taylor Otwell, est l’un des frameworks les plus utilisés dans le monde. Petite anecdote : certaines parties de Laravel reposent sur Symfony.
Pour en savoir plus sur les frameworks PHP, c’est par ici !
En JS : NodeJs, VueJs, Angular et React
Nous pouvons notamment citer NodeJs, VueJs ou encore Angular.
- NodeJs, doté de hautes performances et utilisable dans de nombreuses situations, a permis une grande avancée dans le monde de JavaScript (JS). Fondé en 2009 par Ryan Dahl, il a fait tomber le mur entre le frontend et le backend. C’est lui qui a rendu possible la réalisation d’applications back-end en JS. NodeJs aide notamment les entreprises dans la création d’applications évolutives et capables de gérer des connexions simultanées à haut débit. Par exemple, des entreprises comme Google ou encore PayPal utilisent NodeJs sur certaines parties de leurs applications.
- VueJs, créé par Evan You en 2014, est un cadre de travail évolutif basé sur JavaScript dont l’approche est orientée composants. On l’utilise généralement pour la partie front-end. Il est doté d’une courbe d’apprentissage progressive, qui lui permet d’être “simple” à prendre en main. Ses très bonnes performances et son poids léger (30 ko) font de lui l’un des frameworks JavaScript les plus rapides. Nous pouvons citer quelques sites qui utilisent VueJs : Adobe, Alibaba ou encore Nintendo.
- Angular est le framework front-end officiel de Google et développé par ce dernier. Né en 2016, il offre des solutions prêtes à l’emploi et permet de créer des composants en JS. C’est un très bon framework pour développer des applications web hautement interactives. Orienté composant, il vous apporte une base de code solide. Cependant, il présente une certaine complexité dans sa courbe d’apprentissage, et le développement d’une application sous Angular implique nécessairement son utilisation de A à Z. Il n’est pas possible de changer de framework entre temps. Vous serez également obligé de passer par l'étape TypeScript pour utiliser Angular !
- React n’est pas vraiment un framework. On le qualifie plutôt de “bibliothèque front-end”. Née en 2013 et développée par Facebook, il est dotée d’une importante communauté Open Source (qui s’appuie sur des méthodes de travail collaboratives et décentralisées). Malgré sa courbe d’apprentissage relativement rapide, son utilisation sur du long terme s’en voit légèrement complexifiée. Étant face à une librairie, React met à disposition des éléments réutilisables, mais s'affranchit de l’architecture logiciel.
On n'a rien sans rien ! Le développement est passionnant et accessible à tous, et certains frameworks sont simples à utiliser au début, mais deviennent complexes à mesure que l’application grossit. À l’inverse, d’autres nécessitent un apprentissage plus long, mais des facilités peuvent émerger une fois sur l’application. C’est un choix à faire en fonction du projet et de vos méthodes.
Quoiqu’il en soit, l’utilisation d’un framework requiert la connaissance du langage dans lequel il est développé. Pour pouvoir utiliser Symfony, Laravel et bien d’autres, il vous faut être à l’aise avec PHP et la POO (Programmation Orientée Objet). En ce qui concerne React, Angular ou NodeJS, la connaissance de JavaScript est un passage obligatoire.
Enfin, il existe encore bien d’autres frameworks de développement web, de quoi satisfaire toutes vos envies d’apprendre !
Pour aller plus loin...
Si vous êtes intéressés par le monde de la tech, découvrez le métier de Développeur web sur notre page métier, ainsi que nos formation en PHP ou en Javascript.