KENAPA GAK DEP AJA ?
Pada 2017, pengembangan dep dimulai sebagai percobaan resmi di Go Package Management. Jika percobaan berhasil, maka dep akan menjadi solusi resmi untuk manajemen paket. dep ini menjadi sangat penting untuk developer Go, Dep mengadopsi mekanisme manajer paket lain, seperti cargo atau bundler .
dep memang menggunakan dua file konfigurasi — Gopkg.toml dengan dependensi, dan Gopgk.lock dengan hash dan versi paket. Dependensi disimpan di direktori vendor. Dengan Dep memungkinkan untuk menentukan secara spesifik nomor versi yang sangat fleksibel dan tangguh untuk dependensi berdasarkan versi yang diinginkan. Spesifikasi versi yang valid di dep adalah hal-hal seperti 1.5–1.7.0 (yaitu> = 1.5 dan <= 1.7.0) dan ~ 1.6.0 (yaitu> = 1.6 dan <1.7.0). Pada dep, versi dapat ditentukan lebih fleksibel dan kuat daripada di modul Go, yang hanya memungkinkan spesifikasi versi minimal yang diperlukan.
Tim Go mengikuti percobaan dengan cermat, tetapi pada akhirnya tidak dimasukkan dalam standar Go karena beberapa anggota tidak yakin. Bagaimanapun, prinsip Go lama menyatakan “jika ragu, tinggalkan saja.” Namun, tim Go terus bekerja secara intensif pada subjek manajemen paket. Salah satu pendukung utama adalah Russ Cox, yang bertanggung jawab atas konsep-konsep penting untuk modul Go dan implementasi saat ini.
Intinya, Russ Cox mengatakan bahwa fleksibilitas dan kekuatan dep sulit bagi pengguna untuk mengelola. Dalam praktiknya, mereka tidak memberikan hasil yang lebih baik daripada pendekatan nomor versi minimum dari modul Go. Fleksibilitas ini membutuhkan implementasi yang sangat kompleks dari alat manajemen paket itu sendiri, dengan biaya pemeliharaan dan kinerja. Perbandingan modul dan dep Go akan melampaui lingkup yang dibahas di sini, tetapi poin paling penting dapat ditemukan di utas Twitter Russ Cox ini .
Namun, satu hal yang pasti: kerja sama antara komunitas Go dan tim Google Go tidak berhasil dengan baik. Untuk waktu yang lama, banyak pokok kritik tidak dikomunikasikan kepada komunitas dep dan Go. Di sisi lain, modul Go dirancang di ruang tertutup Googleplex dan komunitas tidak cukup terlibat. Tim internal Go juga melihat ini dan menjanjikan upaya yang lebih baik di masa depan. Mugo-mugo lebih terbuka, leres to mase :)
Read more