Parfois pendant un entretien, une seule question peut faire pencher la balance en votre faveur. Non pas qu'une mauvaise réponse puisse vous éliminer, mais disons plutôt qu’une bonne réponse peut vous donner l'avantage par rapport à un autre candidat.

Cette question en fait partie, et même certains développeurs expérimentés ne savent pas correctement y répondre correctement !

Alors, quelle est la différence ?

Souvent, on a le droit à une collection de réponses tentées au hasard comme :

  • “C'est la même chose, on peut utiliser les deux mots”
  • “Framework c'est l'anglais pour librairie”
  • “Il y a une différence de taille, le framework est beaucoup plus gros”

Ou encore :

  • “Un framework est un ensemble de librairie qui fonctionnent ensemble”

On pourrait presque croire que la vraie définition se cachent là-dedans, du moins certains pourraient faire illusion dans une discussion de tous les jours.

La réponse

Mais la vraie réponse, celle notamment attendue en entretien est différente, en voilà une version simple et rapide :

“Le développeur utilise une librairie en appelant le code de cette dernière, tandis que le rôle du framework est d’exécuter le code du développeur”

Et oui, leur fonctionnement est presque l'inverse l'un de l'autre !

En français, on traduit le mot framework par “cadre applicatif”, car c'est son but, il donne un cadre, une organisation, un squelette, une méthode de travail. Tandis que la librairie, elle, n'offre que des fonctionnalités souvent décorrélées les unes des autres.

Attention néanmoins car même si cette définition est valide, le mot framework étant plus attractif et synonyme de sérieux, tous les outils se déclarent comme étant des “framework” même si leur fonctionnement ressemble plutôt à celui d'une librairie.

Par exemple on parle toujours de React comme étant un framework alors que c'est en fait une librairie dont on va devoir appeler manuellement la fonction render(). Voilà quelques exemples de “vrais” frameworks basés sur des librairies que tu connais sûrement.

Libraire vs Framework :

  • React vs NextJS
  • VueJS vs NuxtJS
  • ExpressJS vs NestJS
  • AngularJS vs Ionic
Si vous vous rendez sur la page d'accueil de chacune des librairies à gauche, vous verrez pourtant qu'ils se vendent chacun comme étant des frameworks, mais maintenant vous saurez dénicher la supercherie !

Si vous souhaitez des informations plus poussées, vous pouvez consulter ce petit article sur le blog d'Oreilly expliquant pourquoi React est une librairie (en anglais) : https://www.oreilly.com/library/view/what-react-is/9781491996744/ch01.html

What React Is and Why It Matters
Chapter 1. What Is React? React is a library for helping developers build user interfaces (UIs) as a tree of small pieces called components. A component is a mixture of … - Selection from What React Is and Why It Matters [Book]

À propos de l'auteur

Hello, je suis Nicolas Brondin-Bernard, ingénieur web indépendant depuis 2015 passionné par le partage de d'expériences et de connaissances.

Aujourd'hui je suis aussi coach pour développeurs web juniors, tu peux me contacter sur nicolas@brondin.com, sur mon site ou devenir membre de ma newsletter pour ne jamais louper le meilleur article de la semaine et être tenu au courant de mes projets !


Photo par Clay Banks sur Unsplash