Menandai 14 tahun sejak peluncuran proyek open source bahasa Go
- Salah satu pencipta bersama bahasa Go menyampaikan ceramah terakhirnya pada konferensi GopherConAU yang diadakan di Sydney pada 10 November 2023.
- Dalam ceramah tersebut, ia memperingati 14 tahun sejak bahasa Go dirilis sebagai proyek open source, sambil membahas keberhasilan yang telah diraih dan hal-hal yang perlu direnungkan.
- Pembicara menegaskan bahwa ia tidak mewakili tim Go maupun Google, melainkan menyampaikan pandangan pribadinya, serta menyampaikan terima kasih kepada komunitas yang telah berkontribusi pada kesuksesan bahasa Go.
Faktor keberhasilan dan area perbaikan bahasa Go
- Tujuan awal bahasa Go bukanlah menciptakan bahasa pemrograman baru, melainkan memperbaiki cara menulis perangkat lunak.
- Bahasa Go berupaya mengatasi kompleksitas pembangunan perangkat lunak server modern, seperti manajemen dependensi, kolaborasi dengan tim besar, kemudahan pemeliharaan, pengujian yang efisien, serta pemanfaatan CPU multicore dan jaringan secara efektif.
- Bahasa Go bukan sekadar bahasa pemrograman, tetapi sebuah proyek untuk membangun perangkat lunak produksi dengan lebih mudah dan produktif.
Maskot bahasa Go, gopher
- Gopher, maskot bahasa Go, memainkan peran penting dalam kesuksesan Go.
- Gopher menjadi simbol para programmer Go sekaligus bendera komunitas, dan merupakan unsur penting dalam pertumbuhan proyek ini.
- Membuka desain gopher di bawah lisensi Creative Commons Attribution membantu mendorong semangat komunitas, tetapi juga menimbulkan kesulitan terkait masalah hak cipta.
Faktor keberhasilan teknis bahasa Go
- Penulisan spesifikasi resmi, keberadaan banyak implementasi, portabilitas, jaminan kompatibilitas, pustaka yang kaya, kemudahan pengembangan alat, serta alat pemformatan kode otomatis
gofmt semuanya berkontribusi pada keberhasilan bahasa Go.
gofmt memengaruhi komunitas pemrograman secara luas, hingga menjadi pemicu bagi sebagian besar bahasa untuk memiliki formatter standar.
Concurrency dan interface
- Bahasa Go menjadikan concurrency sebagai komponen utama bahasa, sehingga membantu menyederhanakan struktur perangkat lunak server.
- Interface adalah gagasan khas bahasa Go, merupakan jawaban Go terhadap desain berorientasi objek, dan memainkan peran penting dalam standard library maupun manajemen dependensi.
Generics dan compiler
- Keberadaan interface merupakan salah satu alasan mengapa penambahan generics ke bahasa Go memerlukan waktu yang lama.
- Compiler Go awal yang ditulis dalam C sempat menjadi bahan kontroversi di komunitas bahasa pemrograman, tetapi merupakan pilihan yang tepat bagi perkembangan bahasa Go.
Manajemen proyek dan manajemen paket
- Sebagai proyek open source, pengembangan awal bahasa Go dilakukan secara tertutup, tetapi setelah dibuka untuk publik, kontribusi komunitas meningkat secara eksplosif.
- Proses pengembangan manajemen paket tidak berjalan mulus, dan ada kekurangan pemahaman tentang cara berkolaborasi dengan komunitas.
Dokumentasi dan contoh
- Dokumentasi awal bahasa Go tidak memenuhi harapan komunitas, tetapi kemudian diperbaiki, termasuk dengan menyediakan contoh yang dapat dijalankan di web.
Pendapat GN⁺
- Kesuksesan bahasa Go berasal dari unsur-unsur seperti standard library yang kuat, dukungan concurrency, desain berbasis interface, manajemen paket yang jelas, alat build dan testing yang cepat, pemformatan kode yang konsisten, penekanan pada keterbacaan, serta jaminan kompatibilitas.
- Bahasa Go tidak hanya menghadirkan fungsi sebagai bahasa pemrograman, tetapi juga membawa inovasi pada cara pengembangan perangkat lunak, dan hal ini dimungkinkan berkat keberagaman serta dukungan komunitas.
- Proses pengembangan bahasa Go dan refleksi terhadapnya memberikan pelajaran penting dalam menjalankan proyek open source.
1 komentar
Opini Hacker News
Rasa terima kasih kepada tokoh-tokoh kunci yang meluangkan waktu untuk refleksi proyek
Kecintaan terhadap bahasa Go dan komunitasnya
Berbagi pengalaman kritis tentang sistem manajemen paket Go
Pandangan kritis terhadap bahasa Go
Hal menarik tentang keputusan Ken Thompson untuk menggunakan kompiler C
Penekanan pada keberhasilan adopsi gofmt
Berbagi seluruh playlist sebagai penyelenggara GopherConAU
Kelebihan menggunakan Go untuk membuat monorepo dengan mudah dan membangun aplikasi dengan cepat
Kurangnya pembahasan tentang interoperabilitas Go dan pilihan C FFI
Pendapat tentang menulis kompiler dengan bahasanya sendiri