Un point important manque dans les autres réponses:
Utiliser un gestionnaire de paquets signifie avoir une configuration qui indique les versions de bibliothèque que vous utilisez et garantit que les informations de configuration sont réellement correctes.
Savoir quelles bibliothèques vous utilisez et quelle version est très important si vous:
- nécessité de mettre à jour une bibliothèque en raison d'un bogue critique / d'une faille de sécurité;
- ou juste besoin de vérifier si une faille de sécurité annoncée vous concerne.
De plus, lorsque vous effectuez effectivement une mise à jour, le gestionnaire de packages s'assure (généralement) que toutes les dépendances transitives sont mises à jour si nécessaire.
Alors qu'avec un lib
dossier, vous avez juste un tas de fichiers (éventuellement binaires, et éventuellement modifiés), et vous devrez deviner d'où ils viennent et quelle version ils sont (ou faire confiance à certains fichiers README, qui peuvent ne pas être corrects ).
Pour aborder vos autres points:
Pas besoin d'outil externe pour gérer les packages.
Certes, mais a) en tant que développeur de logiciels, vous devez de toute façon installer de nombreux outils. Ainsi, un ou plusieurs outils ne sont généralement pas importants, et b) il n’ya généralement qu’un ou plusieurs gestionnaires de packages dans un domaine donné (Maven / Gradle pour Java, npm pour JS / TypeScript, etc.), vous n’avez donc pas besoin d’en installer des dizaines.
Aucune connexion Internet requise pour construire.
Tous les gestionnaires de paquets que je connais travaillent hors ligne, une fois qu'ils ont téléchargé les dépendances requises (ce qui peut se produire juste après le téléchargement du projet lui-même).
Construction plus rapide (pas de vérification de paquet).
Probablement vrai, mais il semble peu probable que la vérification du paquet hors ligne prenne beaucoup de temps (il s'agit simplement de comparer certains numéros de version). Une vérification en ligne peut prendre un certain temps, mais elle peut être désactivée si vous le souhaitez (même si elle est activée par défaut - Maven, par exemple, ne vérifie jamais les mises à jour des versions publiées).
Environnements plus simples (moins de connaissances requises).
Certes, mais comme expliqué ci-dessus, un lib
dossier nécessite également des connaissances. En outre, comme expliqué ci-dessus, vous ne travaillerez probablement qu'avec une poignée de gestionnaires de paquets différents, que vous connaissez déjà.