Un punto importante mancante dalle altre risposte:
Usare un gestore pacchetti significa avere una configurazione che indica quali versioni di libreria si stanno usando e si assicura che le informazioni di configurazione siano effettivamente corrette.
Sapere quali librerie usi e quale versione è molto importante se:
- necessità di aggiornare una libreria a causa di un bug critico / falla nella sicurezza;
- o devi solo verificare se una falla di sicurezza annunciata ti riguarda.
Inoltre, quando si esegue effettivamente l'aggiornamento, il gestore pacchetti (di solito) si assicura che eventuali dipendenze transitive vengano aggiornate come richiesto.
Considerando che con una lib
cartella, hai solo un mucchio di file (possibilmente binari e possibilmente modificati) e dovrai indovinare da dove provengono e quale versione sono (o fidarti di alcuni README, che potrebbero essere o non essere corretti ).
Per affrontare gli altri punti:
Non è necessario alcuno strumento esterno per gestire i pacchetti.
È vero, ma a) come sviluppatore di software devi installare un sacco di strumenti, quindi uno in più non ha importanza, e b) di solito ci sono solo uno o alcuni gestori di pacchetti in un dato campo (Maven / Gradle per Java, npm per JS / TypeScript, ecc.), quindi non è come se fosse necessario installarne dozzine.
Nessuna connessione Internet richiesta per costruire.
Tutti i gestori di pacchetti che conosco lavorano offline, dopo aver scaricato le dipendenze richieste (cosa che può accadere subito dopo aver scaricato il progetto stesso).
Build più veloce (nessun controllo del pacchetto).
Probabilmente vero, ma sembra improbabile che il controllo dei pacchetti offline richieda una notevole quantità di tempo (sta solo confrontando alcuni numeri di versione). Un controllo online può richiedere del tempo, ma può essere disattivato se lo si desidera (se è attivato anche per impostazione predefinita, ad esempio Maven non controlla mai gli aggiornamenti per le versioni di rilascio).
Ambienti più semplici (meno conoscenza richiesta).
Vero, ma come spiegato sopra, anche una lib
cartella richiede conoscenza. Inoltre, come spiegato sopra, probabilmente lavorerai solo con una manciata di gestori di pacchetti diversi, che già saprai.