Um ponto importante ausente nas outras respostas:
Usar um gerenciador de pacotes significa ter uma configuração que indica quais versões da biblioteca você está usando e garante que as informações de configuração estejam realmente corretas.
Saber quais bibliotecas você usa e qual versão é muito importante se:
- precisa atualizar uma biblioteca devido a uma falha crítica de bug / segurança;
- ou apenas precisa verificar se uma falha de segurança anunciada afeta você.
Além disso, quando você realmente atualiza, o gerenciador de pacotes (geralmente) garante que todas as dependências transitivas sejam atualizadas conforme necessário.
Considerando que, com uma lib
pasta, você só tem um monte de arquivos (possivelmente binários e possivelmente modificados) e precisará adivinhar de onde eles vieram e qual versão eles são (ou confiar em alguns README, que podem ou não estar corretos )
Para abordar seus outros pontos:
Não há necessidade de ferramenta externa para gerenciar pacotes.
É verdade, mas a) como desenvolvedor de software, você precisa instalar cargas de ferramentas de qualquer maneira; portanto, mais uma não importa, eb) geralmente existem apenas um ou alguns gerenciadores de pacotes em qualquer campo (Maven / Gradle for Java, npm para JS / TypeScript, etc), por isso não é necessário instalar dezenas deles.
Não requer conexão com internet para construir.
Todos os gerenciadores de pacotes que conheço trabalham off-line, depois de baixar as dependências necessárias (o que pode acontecer logo após o download do próprio projeto).
Construção mais rápida (sem verificação de pacotes).
Provavelmente é verdade, mas parece improvável que a verificação do pacote offline leve uma quantidade significativa de tempo (é só comparar alguns números de versão). Uma verificação online pode demorar um pouco, mas pode ser desativada, se desejado (se estiver ativada por padrão - o Maven, por exemplo, nunca verifica atualizações de versões).
Ambientes mais simples (menos conhecimento necessário).
Verdade, mas como explicado acima, uma lib
pasta também requer conhecimento. Além disso, como explicado acima, você provavelmente trabalhará apenas com alguns gerenciadores de pacotes diferentes, que você já conhece.