Avec l’engouement lié à React, Symfony, Vue JS etc… on entend souvent parler de framework ou même de bibliothèque. Que ce soit en front ou même en back, vous pouvez trouver ces termes pour presque tous les langages.
Alors que désignent réellement ces dénominations ? Quelle est la différence entre un framework et une bibliothèque ? On vous propose une définition à la portée de tous de ces termes parfois mal compris 😉
Lorsque l’on utilise le terme anglais library, du moins pour parler d’un outil de développement, c’est pour désigner une bibliothèque de classes ou de fonctions à utiliser dans votre code. On parle alors d’un inventaire d’outils visant à vous faire gagner du temps dans votre travail d’intégration et/ou de développement.
Il ne s’agit surtout pas d’un endroit physique ! Veillez donc bien à ne pas confondre library avec le mot français “librairie” qui désigne autre chose.
Vous l’aurez compris, si l’on utilise une bibliothèque c’est pour ne pas réinventer la roue ! Si une ressource répond à vos besoins, qu’elle est fonctionnelle et disponible pourquoi ne pas l’utiliser ? Il y a bien une raison à cette question, seulement on y répondra plus tard dans la partie : “faut-il absolument utiliser une bibliothèque ou un framework”.
Revenons en à la définition d’une bibliothèque et prenons un exemple concret pour illustrer cette idée.
Sur un chantier vous pouvez très bien créer vous-même votre propre marteau ! Il vous faudra simplement dans votre tâche de développement, commencer votre projet par allouer du temps au développement de votre outil … Bien qu’on accorde beaucoup de mérite au fait-maison, il ne faut pas oublier que cette tâche peut vous demander beaucoup de temps. Et la charge que vous dépensez sur le développement de vos propres outils ne va peut-être pas plaire à votre client, qui soit dit en passant, vous paie en fonction du temps que vous passez sur un projet.
Pourquoi ne pas directement utiliser une boîte à outils ? Avec une boîte à outils, vous avez simplement besoin de prendre votre marteau et ensuite de vous concentrer sur votre travail ! Vous êtes donc plus efficace et vous y gagnez du temps !
C’est une comparaison très simpliste, seulement elle représente parfaitement l’utilité d’une bibliothèque !
Un framework ce n’est pas une bibliothèque ! Cependant si l’amalgame est assez facile à faire entre ces deux termes, c’est tout simplement parce que dans la plupart des cas, un framework inclut une ou des bibliothèques. Prenons par exemple le cas de React, qui fait appel à des bibliothèques tierces pour des fonctionnalités particulières comme le routage, etc …
On s’explique : lorsqu’on parle d’un framework, on désigne en réalité une infrastructure logicielle également appelée cadre d’application. Cette infrastructure ce n’est ni plus, ni moins qu’un schéma de fonctionnement. Cela peut-être par exemple le cas d’un modèle connu et communément adopté comme le MVC (Modèle-Vue-Contrôleur) ou encore le MVVM (Modèle-Vue-Vue-Modèle), mais également une toute autre façon de fonctionner plus exotique.
L’infrastructure logicielle fait partie intégrante du coeur d’un framework, c’est en quelques sortes ce qui le caractérise ! Savoir si un framework utilise le data-binding ou une autre façon de manipuler le code, c’est comprendre son infrastructure logicielle.
Pour être un peu plus précise, cette infrastructure est elle-même composée de plusieurs éléments autonomes appelés composants logiciels ou components en Anglais.
Si une bibliothèque peut être comparée à une boîte à outils, un framework quant à lui peut être perçu comme un laboratoire !
Dans un laboratoire, on peut trouver : de la matière première, des outils et surtout des consignes de sécurité à respecter !
Dans le cadre d’un framework, la matière première est représentée par des variables et d’autres paramètres qui vont donner un sens à l’utilisation des outils.
Les outils, eux sont représentés par des fonctions et des classes incorporées dans le framework. En ce qui concerne les consignes de sécurité, elles sont représentées par le formalisme imposé par le framework. Oui, parce que même si les frameworks peuvent avoir beaucoup d’avantages, le premier étant un gain de temps, ils dictent néanmoins une façon de faire stricte et parfois même très rigide ! On parle alors de paradigme !
Des frameworks, il en existe de tous les acabits ! Chacun a un but différent : certains vont être spécialisés pour une chose en particulier, d’autres pour une autre. Alors pourquoi ne pas en avoir un all-in-one ? Parce que la taille démesurée d’un framework peut avoir des conséquences sur son poids ! Vous l’aurez compris, c’est avant tout un document de travail à importer, et les plus complets peuvent parfois peser très lourd, comme Angular qui pèse environ 150 ko ! Dans le cadre d’un développement en front, plus un framework sera lourd, plus il prendra de temps à charger et donc le chargement de la page en compatira : c’est l’idée qu’il faut en retenir !
C’est pourquoi vous trouverez certains frameworks qui essaient de se démarquer en embarquant le strict nécessaire pour assurer un nombre de besoins ciblés. C’est le cas par exemple du framework javascript Mithril, qui lui ne pèse que 8ko de code, et dont la spécialité est la création de SPA (Single Page Application). D’ailleurs si vous cherchez un framework javascript et que vous ne savez pas lequel choisir, on vous conseille de lire article : Javascript, quels sont les meilleurs frameworks pour votre site web ?
Autre point à soulever : la complexité ! Plus un framework aura de fonctionnalités et vous offrira de possibilités, plus il sera dur à manipuler !
Êtes-vous sûr d’utiliser ses services à 100% ? Ce n’est pas forcément le cas, et donc pour cibler exactement les outils qui vous seront utiles, vous allez devoir secouer chaque branche, une à une, avant de voir un petit peu plus clair dans cette jungle ! Rassurez-vous, on est pas en train de dire qu’un framework c’est une adaptation du Jumanji. Cependant, ceuw qui sont de taille conséquente comme Angular nécessitent une clairvoyance aiguisée pour s’y retrouver, et ne sont donc pas forcément les plus accessibles quand on a un profil junior …
Ah, voilà la fameuse question tant attendue ! Alors pour répondre à cette question, il faut comprendre exactement qui utilise quoi. Quand on utilise un framework, c’est celui-ci qui va appeler le code. Rappelons-le, il constitue un cadre applicatif qui va englober votre code.
Pour reprendre le modèle MVC, c’est bien lui qui manipule votre code en le découpant sous différentes couches la vue (le design), le modèle (votre front) le controler (qui fait les interconnections entre le modèle et la vue) !
Vous, en tant que développeur vous êtes simplement utilisateur de ce modèle. Vous gérez donc simplement les données que vous y injecter, leurs traitements et leurs affichages. Pour le reste, c’est le framework qui s’en charge et vous n’êtes pas obligé de savoir comment ça se déroule. Vous êtes utilisateur de celui-ci, et non son administrateur.
A la différence, quand vous utilisez une bibliothèque c’est votre code qui l’utilise.
Parce que comme dit, la bibliothèque ne représente qu’un inventaire de ressources disponibles, et vous, vous faîtes appel à ces ressources avec votre code !
Si la plupart des bibliothèques et frameworks que vous pouvez trouver sur le web sont libres et souvent gratuits, c’est justement parce qu’ils ont pour but de mettre à disposition le fruit de nombreuses heures de développement !
Chacun peut donc les utiliser librement et contribuer à leurs développements en y ajoutant ses propres fonctions ou classes qu’il juge manquantes.
Attention tout de même, nous parlons ici de bibliothèques et de frameworks open-source et gratuits tel que React ! Ce n’est pas forcément le cas de tous, par exemple la bibliothèque javascript Kendo UI est payante. Vous pouvez bien-sûr réutiliser et modifier les composants qui y sont présents, cependant vous n’avez pas le droit de la publier et de la redistribuer. Si vous souhaitez utiliser une bibliothèque, il est très important de faire attention à cette nuance et de vous renseigner sur la licence de publication de la bibliothèque ou du framework, cela pourrait vous éviter de gros soucis juridiques.
Alors non, vous n’êtes pas obligé d’utiliser un framework ou une bibliothèque !
Vous pouvez très bien travailler avec vos propres outils, et ça a également des avantages, dont notamment :
Mais au final, c’est comme si vous créez votre propre framework maison …
Sauf que le votre ne sera pas utilisé par d’autres (sauf si vous le publier et le rendait open-source), et il sera donc un frein pour le travail en équipe.
Alors quand décider si je dois utiliser un framework ?
Tout dépend des circonstances, si la bibliothèque répond à 100% de vos besoins, c’est top ! Sinon, là vous pouvez vous poser la question de partir from scratch !
Ce serait bête de dépenser trop de temps à “remodeler” un outil qui n’est pas adapté à vos besoins. C’est comme essayer d’enfoncer un clou avec une passoire, on peut y arriver mais il va falloir aligner des tas de paramètres.
Aujourd’hui on va vous parler de Kendo Ui, une bibliothèque Javascript distribuée par la société Télérik. Si vous ne le savez pas, le...
Vous êtes un aficionado du HTML, du CSS et du JavaScript ? Dans ce cas Vue.JS vous sera simple à aborder ! En effet sa courbe d’apprentissage...
Vous êtes fan de Angular et React mais vous trouvez que leur temps de chargement laisse à désirer ? On a trouvé une solution pour vous :...
Inscrivez-vous à notre newsletter. Nous vous enverrons des publications et des articles de veille technique sur le digital.