Poin penting yang hilang dari jawaban lain:
Menggunakan manajer paket berarti memiliki konfigurasi yang menunjukkan versi pustaka mana yang Anda gunakan dan memastikan bahwa informasi konfigurasi benar.
Mengetahui perpustakaan yang Anda gunakan, dan versi mana, sangat penting jika Anda:
- perlu memperbarui perpustakaan karena ada bug penting / lubang keamanan;
- atau hanya perlu memeriksa apakah lubang keamanan yang diumumkan mempengaruhi Anda.
Selain itu, ketika Anda benar-benar melakukan pembaruan, manajer paket (biasanya) memastikan setiap dependensi transitif diperbarui sesuai kebutuhan.
Sedangkan dengan lib
folder, Anda hanya memiliki banyak file (mungkin biner, dan mungkin dimodifikasi), dan Anda harus menebak dari mana asalnya dan versi apa mereka (atau mempercayai beberapa README, yang mungkin atau mungkin tidak benar) ).
Untuk membahas poin Anda yang lain:
Tidak perlu alat eksternal untuk mengelola paket.
Benar, tetapi a) sebagai pengembang perangkat lunak Anda perlu menginstal banyak alat, jadi satu lagi biasanya tidak masalah, dan b) biasanya hanya ada satu atau beberapa manajer paket di bidang tertentu (Maven / Gradle untuk Jawa, npm untuk JS / TypeScript, dll), jadi Anda tidak perlu menginstalnya puluhan.
Tidak diperlukan koneksi internet untuk membangun.
Semua manajer paket yang saya kenal bekerja secara off-line, setelah mereka mengunduh dependensi yang diperlukan (yang dapat terjadi segera setelah mengunduh proyek itu sendiri).
Build lebih cepat (tidak ada pengecekan paket).
Mungkin benar, tetapi tampaknya pengecekan paket offline tidak akan memakan banyak waktu (hanya membandingkan beberapa nomor versi). Pemeriksaan daring mungkin memakan waktu cukup lama, tetapi itu dapat dimatikan jika diinginkan (jika bahkan diaktifkan secara default - Maven misalnya tidak pernah memeriksa pembaruan untuk versi rilis).
Lingkungan yang lebih sederhana (lebih sedikit pengetahuan yang dibutuhkan).
Benar, tetapi seperti yang dijelaskan di atas, lib
folder juga membutuhkan pengetahuan. Juga, seperti dijelaskan di atas, Anda mungkin hanya akan bekerja dengan beberapa manajer paket yang berbeda, yang sudah Anda ketahui.