Ulang Tahun ke-16 Go
(go.dev)- Menandai 16 tahun sejak Go dirilis sebagai open source, artikel ini merangkum kemajuan teknis utama selama setahun terakhir dan rencana ke depan
- Pada Go 1.24 dan 1.25, ada peningkatan besar di pengujian, keamanan, dan performa
- Fitur seperti
synctest, container-aware scheduling, dan flight recorder memperkuat keandalan serta efisiensi di lingkungan produksi - Paket kriptografi yang disiapkan untuk sertifikasi FIPS 140-3 dan Green Tea GC meningkatkan keamanan serta performa
- Ekosistem Go sedang meluas ke pengembangan terintegrasi AI dan otomatisasi kode modern, dengan dukungan lebih kuat untuk perangkat keras skala besar dan AI di masa depan
Ringkasan 16 Tahun Go dan Rilis Terbaru
- Merayakan 16 tahun sejak Go dirilis sebagai open source pada 10 November
- Pada Februari 2024 Go 1.24, dan pada Agustus Go 1.25 dirilis sesuai siklus rilis reguler
- Kedua versi mencakup API untuk pengembangan perangkat lunak yang andal, penguatan keamanan, dan peningkatan performa runtime
- Tim Go sedang mendorong pengembangan integrasi AI, agen, dan infrastruktur berbasis Go sebagai respons terhadap perubahan di era AI generatif
Peningkatan Utama pada Bahasa dan Pustaka Standar
- Paket
testing/synctest, yang diperkenalkan secara eksperimental di Go 1.24 dan diresmikan pada 1.25, menyederhanakan pengujian kode asinkron dan paralel- Dengan virtualisasi waktu, pengujian yang lambat atau tidak stabil dapat diubah menjadi pengujian yang andal dan instan
- Strukturnya terintegrasi secara mendalam dengan runtime Go dan pustaka standarnya
- API
testing.B.Loopmeningkatkan kemudahan penggunaan API benchmark lama (B.N) dan mengatasi jebakan tradisional - Ditambahkan API pembersihan pengujian dan output log berbasis
Contextuntuk meningkatkan efisiensi pengelolaan pengujian - Go 1.25 memperkenalkan container-aware scheduling untuk menyesuaikan pemrosesan paralel secara otomatis di dalam container
- Mencegah CPU throttling dan memperbaiki latensi
- Fitur flight recorder memperluas execution tracer sehingga dapat merekam secara rinci peristiwa tepat sebelum terjadinya error
Pengembangan Perangkat Lunak yang Berpusat pada Keamanan
- Paket kriptografi Go dalam audit oleh firma keamanan independen Trail of Bits hanya menemukan satu isu dengan tingkat keparahan rendah
- Melalui kolaborasi antara Go Security Team dan Geomys, Go memperoleh sertifikasi CAVP dan menyelesaikan persiapan untuk sertifikasi FIPS 140-3
- Ini meningkatkan kegunaan Go di lingkungan yang teregulasi dan mengatasi ketergantungan pada solusi tidak resmi yang sudah ada
- Pustaka standar Go terus berkembang ke arah safe by default
- API
os.Rootdi Go 1.24 mencegah kerentanan penelusuran jalur saat mengakses sistem berkas
- API
Peningkatan Struktur Internal dan Performa
- Pada Go 1.24, implementasi
mapdidesain ulang sepenuhnya untuk mencerminkan desain hash table modern- Meningkatkan performa, menurunkan latensi, dan memperbaiki efisiensi memori
- Green Tea garbage collector di Go 1.25 mengurangi overhead GC sebesar 10~40%
- Menggunakan algoritme baru yang disesuaikan untuk perangkat keras modern
- Pada Go 1.26, peningkatan tambahan 10% direncanakan pada perangkat keras yang mendukung AVX-512
- Direncanakan aktif secara default mulai Go 1.26
Perluasan Stack Pengembangan dan Integrasi AI
- Go berkembang melampaui sekadar bahasa menjadi platform pengembangan yang lengkap
- Language server gopls diperkuat lewat 4 rilis reguler (v0.17~v0.20)
- Menambahkan analyzer kode, refactoring, pemrosesan tag JSON, server MCP bawaan, dan lainnya
- Diperkenalkan fitur modernisasi kode otomatis (modernizer)
- Secara otomatis mengubah pola kode lama menjadi bentuk yang modern dan aman
- Terintegrasi dengan fitur saran IDE untuk membantu menjaga konsistensi kode dan pembelajaran berbantuan AI
- Pada Go 1.26, perintah
go fixakan diperbarui agar dapat menerapkan seluruh modernizer sekaligus
- Melalui kolaborasi dengan Anthropic dan komunitas, dirilis SDK Go resmi v1.0.0 untuk Model Context Protocol (MCP)
- Mendukung klien dan server MCP, berdasarkan fitur MCP di gopls
- ADK for Go dari Google menyediakan framework untuk pengembangan sistem multi-agen di atas MCP SDK
- Ini menunjukkan bahwa konkurensi, performa, dan keandalan Go cocok untuk pengembangan AI produksi
Rencana ke Depan dan Komunitas
- Direncanakan ketersediaan umum Green Tea GC, dukungan perangkat keras SIMD, dan peningkatan skalabilitas multicore
- Sedang dikerjakan upgrade besar
encoding/json, profiling kebocoran goroutine, serta peningkatannet/httpdanunicode - Perluasan bahasa, alat, dan sistem diagnostik untuk menggabungkan Go dan AI
- Proyek open source Go menargetkan perluasan komunitas kontributor dan skalabilitas proses pengembangan
- Kemajuan Go bertumpu pada kontribusi pengguna dan komunitas kontributor, dan menandakan pertumbuhan berkelanjutan ke depan
1 komentar
Komentar Hacker News
Saya benar-benar suka Go. Terutama sangat menonjol di lingkungan monorepo. Saat menambahkan aplikasi baru, cukup buat satu folder dan masukkan file go yang berisi fungsi
main(). Lalu jalankango install ./...dari root dan semuanya akan dibangun dengan cepat.Kesederhanaan ini benar-benar langkah jenius saat perlu cepat membuat program CLI
Dulu orang sering bilang bahasa bukanlah bottleneck, tapi saat pertama kali melihat Go saya merasa “ini berbeda”. Belajarnya juga sangat cepat — mungkin karena spesifikasi bahasanya kecil.
Rasanya seperti mendapatkan 80% fitur Rust dengan 20% usaha
Bagi saya Go terasa seperti Rust yang terlalu disederhanakan. Perbaikan kode otomatis, pemaksaan loop, dan pengecekan keberadaan key pada map juga terasa kurang nyaman.
Pemrosesan array atau definisi enum juga terasa canggung, dan karena aturan linter di perusahaan, kode jadi terpecah-pecah sampai terasa seperti Java enterprise.
Meski begitu, interface-nya sederhana dan cepat dipelajari.
Kalau Go punya enum yang layak, sintaks slice yang alami, iterator, dan sintaks singkat untuk unwrapping result, pasti akan jauh lebih baik
Library json bawaan juga punya banyak masalah, misalnya menserialisasi slice kosong menjadi null.
Meski begitu, saya akui kecepatan tooling-nya tinggi dan sifat praktisnya nyata
Unwrapping result sudah lama dibahas komunitas, tetapi sampai sekarang belum ada solusi yang rapi
Kalau Anda sering menghapus elemen dari tengah array, berarti Anda salah memilih struktur data
slices.Delete, dan hal seperti pemaksaanif err != nilitu bukan masalah bahasa, melainkan masalah aturan timSaya sempat berharap Go akan dirilis untuk Apple II (lihat SWEET16)
Sangat mudah berkontribusi ke codebase Go yang baru.
Berkat kesederhanaan bahasanya dan tool standar seperti gofmt dan golangci-lint, semua codebase memiliki struktur yang mirip.
Tidak ada perdebatan soal build tool seperti di komunitas bahasa lain
Hanya saja cara operator
%menangani bilangan negatif sempat membingungkanMenarik melihat diperkenalkannya alat modernisasi kode otomatis (modernizer).
Mulai gopls v0.18.0, alat ini menggunakan analisis sintaks untuk menemukan idiom lama dan secara otomatis mengubahnya menjadi kode yang lebih cepat dan aman.
Seperti gofmt yang menciptakan konsistensi gaya, modernizer akan menciptakan konsistensi idiom
Di golangci-lint, menyalakan linter seperti exhaustive, exhaustruct, dan wrapcheck sangat meningkatkan keamanan dan mempercepat pengembangan
Di perusahaan kami, kami menjalankan program onboarding 10 minggu untuk developer backend Go (tautan rencana)
Sudah 7 tahun sejak beralih dari Python ke Go, dan ini menjadi faktor kunci keberhasilan startup kami
Awalnya saya meragukan Go, tetapi sekarang ini bahasa favorit saya. Sederhana namun kuat.
Hanya saja akan lebih baik jika pemeriksaan null, stack trace error, dan exhaustive check untuk sum type tersedia secara bawaan
Sepertinya Go akan sempurna jika punya sedikit lebih banyak fitur terkait functional programming.
Terutama immutability, penanganan null, dan exhaustiveness pada switch yang terasa kurang.
Saya menutupinya dengan memakai NilAway dari Uber, tetapi akan lebih baik jika didukung di level sistem tipe