Intégration : faux-argument.
Dans toute technologie digne de ce nom on fait appel à des systèmes de gestion voire d'injection de dépendances, afin d'isoler les bibliothèques qu'on utilise.
Une bibliothèque peut égaler utiliser un namespace, un package, …
Même en Javascript aujourd'hui, pourtant autrefois le roi du "je colle tout dans la window en variable globale, advienne que pourra", on dispose d'outils de gestion de dépendances type requirejs.
Qui plus est, en créant ses propres bibliothèques, non documentées, on a 100 fois plus de chance de rentrer en conflit avec, soi une autre bibliothèque, soit du code écrit par quelqu'un d'autre qui participe à ton projet.
Clarté
En quoi l'utilisation de bibliothèques t'empêche de répartir ton code en modules, tu m'expliques ?
Au sein même de certaines bibliothèques on trouve des modules. Vu que tu sembles parler beaucoup de Javascript, je t'engage à regarder AngularJS et ses différents modules.
Quant aux fonctions outils, mais qu'est-ce-qui t'empêche de le faire quand tu utilises une bibliothèque, voire de créer une surcouche à ladite bibliothèque ??
Vitesse de calcul
Alors là, non, très clairement. Tu connais le Javascript ? Essaie de faire plus optimisé et générique que la méthode each d'underscorejs (ou celle d'angular). Tu n'écriras à mon avis jamais de code mieux optimisé que celui d'une bibliothèque open source à laquelle ont contribué des dizaines de personne spécialistes sur le sujet.
Correction de bugs
La plupart des lib sont aujourd'hui open source. Si tu trouves un bug tu peux au moins le signaler aux développeurs, au mieux le corriger et leur soumettre un correctif.
En outre, tu bénéficies des gens qui utilisent AUSSI la même bibliothèque que toi, le fait qu'elle est donc indirectement testée par des milliers d'utilisateur.
Qui plus est, je serais curieux de savoir quelle procédure de tests tu emploies pour écrire des tests automatisés pour tes propres modules, puisque tu n'utilises pas de bibliothèque.
Une bibliothèque, ça s'utilise correctement, par pour tout et rien ni n'importe quand ou n'importe comment.
Ca s'utilise quand on en a besoin et dans ces conditions, la réutilisabilité et la maintenabilité du code est bien plus importante qu'un petit module écrit dans son coin et testé à la main.