Komunitas bahasa pemrograman Go saat ini terlibat dalam perdebatan sengit mengenai proposal baru untuk menyederhanakan penanganan error menggunakan operator '?', yang menunjukkan adanya kesenjangan yang semakin besar antara pengembang berpengalaman dan pendatang baru dalam bahasa tersebut.
Penanganan Error Tradisional vs Modern
Diskusi ini mengungkapkan perpecahan signifikan dalam komunitas Go mengenai pendekatan penanganan error. Pengembang Go yang sudah lama berkecimpung telah terbiasa dan bahkan mengapresiasi pola if err != nil
yang eksplisit, sementara pengembang yang berasal dari bahasa lain sering menganggapnya rumit dan berulang-ulang. Seperti yang dicatat oleh salah satu anggota komunitas:
Jika Anda terbiasa dengan exceptions dan bahasa dengan semacam operator '?', mengetik
if err != nil
setiap saat mungkin sangat menyiksa. Setelah Anda menggunakan bahasa ini untuk beberapa waktu, Anda mulai tidak menyukai sistem rumit yang digunakan bahasa lain untuk menyembunyikan error.
Dampak Proposal dan Kekhawatiran Komunitas
Perubahan yang diusulkan akan mempengaruhi sekitar 1,98% dari semua pernyataan dalam pustaka standar Go, yang merepresentasikan transformasi signifikan dalam cara kode Go ditulis dan dibaca. Anggota komunitas telah mengangkat beberapa kekhawatiran tentang proposal ini, termasuk potensi kebingungan bagi pendatang baru, risiko terlewatnya penanganan error dengan simbol '?' yang mudah terlewatkan, dan apakah perubahan mendasar seperti ini diperlukan mengingat adanya alat pengembangan modern.
Statistik Utama dari Proposal:
- Total 723.292 pernyataan yang dianalisis dalam pustaka standar
- 14.304 pernyataan dapat dikonversi ke sintaks baru
- 1,98% dari seluruh pernyataan akan diubah
- 2.825 pernyataan (0,39%) akan menggunakan ? tanpa blok opsional
Konteks Pengembangan Modern
Menariknya, beberapa pengembang menunjukkan bahwa dengan munculnya alat pengembangan berbasis AI dan copilot, beban menulis kode boilerplate telah berkurang secara signifikan. Kemajuan teknologi ini membuat beberapa orang mempertanyakan apakah perubahan sintaksis untuk mengurangi boilerplate masih sama pentingnya seperti beberapa tahun yang lalu.
Kredibilitas Teknis
Proposal ini memiliki bobot signifikan dalam komunitas, datang dari Ian Lance Taylor, tokoh kunci dalam pengembangan Go yang berperan penting dalam membawa generics ke dalam bahasa tersebut. Latar belakang ini telah mendorong banyak pengembang untuk mempertimbangkan proposal tersebut dengan serius meskipun ada keraguan awal mereka.
Debat terus berkembang, dengan komunitas menimbang manfaat pengurangan boilerplate terhadap prinsip-prinsip Go tentang kesederhanaan dan kejelasan dalam penanganan error.
Referensi: discussion: spec: reduce error handling boilerplate using ? #71460