Bien souvent on a du mal à distinguer entre les définitrions de API, bibliothèque et Framework. Il arrive même qu'on appelle API et Framework par bibliothèque, ce qui en soit même n'est pas faux. Cela voudrait dire qu'une bibliothèque peut être appelée par API ou Frameswork; si oui les trois définitions fusionnent; ce qui est faux.

Voila ce que je pense :
API= on met un visage au concept de"bibliothèque". En fait, Quand on parle d'API, on fait allusion à un regroupement de plusieurs codes prêt à l'emploie et dans lequel on va piocher. Pas de précision quand au contenu. Les codes peuvent être séparés en bibliothèques selon leurs spécifications (exemple : API de JAVA). On reste générale!. Pour moi un API est un ensemble de bibliothèques sans aucune autre précision. Il arrive qu'on nomme une bibliothèque parmi d'autre par API Machin. C'est un abus! mais ce n'est pas faux si on prend l'exemple de la notion de répertoires en informatique : un répertoire peut être un ensemble de répertoires. Ou encore en mathématiques, un ensemble peut être un ensemble d'ensembles.
Cette appellation, personnellement ne me gène pas.

Mais alors qu'elle est la différence avec frameswork?
En deux mots, frameswork est également un ensemble de bibliothèques mais avec des conditions imposées lors de la construction de cet ensemble. Je vous laisse admirer la définition ci dessous que j'ai trouvée sur le net et qui mettra en évidence une différence subtile et intéressante avec l'appellation API.
Vous comprendrez tout de suite que frameswork est également une bibliothèque mais pas comme les autres.
Bonne lecture!
Définition d'un framework

L'objectif est de faire un bon gâteau. Généralement, les personnes qui ne savent pas cuisiner ou qui aiment particulièrement une recette très connue choisissent un gâteau tout prêt qui est vendu dans un sachet qu'il suffit de mettre au four, c'est ce que l'on appelle en développement web un CMS ou Système de Gestion de Contenu. C'est très pratique et on y a tous goûté un jour mais il est quasi-impossible de changer la recette, au mieux vous pouvez rajouter un peu de nappage sur le dessus mais ça reste succinct... et frustrant. De plus, avouons-le, c'est loin d'être de la grande cuisine, c'est correct mais ça en reste là. Enfin, et c'est souvent le plus gênant, les sachets vendus sont pour 4 et comment faire lorsque vous êtes 6 ou 2 ?

Heureusement tout ces inconvénients disparaissent lorsque l'on sait cuisiner. On choisit la recette qui nous plaît, les ingrédients parmi les meilleurs et on fait un bon gâteau. Le problème de cette méthode est qu'elle prend du temps. Or, il y a des combinaisons d'ingrédients que l'on retrouve tout le temps comme mélanger des œufs et de la farine ou monter des blancs en neige. Si seulement on pouvait directement avoir accès à ces ingrédients tout prêts !

En cuisine, ce n'est pas évident et cela demanderait un frigo énorme, mais en développement web on a trouvé la parade : les frameworks .

Un framework est donc un regroupement de macro-ingrédients qui forment un tout cohérent et que l'on a juste a assembler selon nos besoins pour faire un gâteau avec notre propre recette.
Avantages d'un framework

Liste non exhaustive :

* Le premier avantage est la liberté : c'est vous qui décidez de la recette pour arriver au gâteau souhaité et personne d'autre, si vous n'aimez pas le café il suffit de ne pas en mettre, c'est tout simple. Ce soir vous êtes 9 ? Une petite conversion et le tour est joué. Aïe, ce macro-ingrédient n'existe pas encore. Aucun problème il suffit de le créer vous-même ;
* Le deuxième est la rapidité : faire votre gâteau à partir des ingrédients de base prendrait trop de temps, l'objectif est quand même d'être rassasié rapidement . Les macro-ingrédients sont le compromis idéal ;
* Le troisième est la qualité : les macro-ingrédients ont été assemblés par des personnes très compétentes qui ont normalement envisagé toutes les possibilités d'assemblage. De plus, ceux-ci sont distincts donc vous pouvez facilement modifier/améliorer le vôtre pour ensuite éventuellement le partager ou directement récupérer celui d'un ami ;
* Le quatrième est la cohérence : pour éviter les fautes de goût, tous les macro-ingrédients ont été assemblés dans un but commun qui est de faire de bons gâteau ;
* Le cinquième est la pérennité : tout le monde peut monter des blancs en neige, mais il faut toujours retenir ce qu'il faut mettre à la bonne température, combien de temps tourner dans un sens,... le macro-ingrédients « blancs en neige » est toujours fait de la même manière, la meilleure. Et si jamais un jour il en existe un nouvelle encore meilleure, elle sera utilisée sans même que vous le sachiez.