Bahasa pemrograman Go (Golang) Google telah merilis versi terbarunya, Go 1.19, meningkatkan dukungan generiknya, memperkenalkan model memori yang ditingkatkan, dan menawarkan berbagai fitur lainnya. Pembaruan ini berfokus pada menyempurnakan generik yang baru ditambahkan, yang pertama kali diperkenalkan di Go 1.18, dan mengoptimalkan kinerja kode generik hingga 20 persen.
Perbaikan di Go 1.19
Dengan dirilisnya Go 1.19 pada tanggal 2 Agustus, pengembangan dukungan generik berkonsentrasi pada penanganan masalah halus dan kasus sudut yang dilaporkan oleh komunitas, bersamaan dengan peningkatan kinerja. Pengenalan generik ke bahasa tersebut merupakan fitur yang telah lama ditunggu ditambahkan ke Go 1.18, yang dirilis pada bulan Maret.
Model memori Go telah diperbarui untuk secara eksplisit mendefinisikan perilaku paket sinkronisasi/atomik, menyediakan primitif memori atom tingkat rendah untuk mengimplementasikan algoritme sinkronisasi. Definisi formal dari relasi happen-before telah diubah agar selaras dengan model memori yang digunakan oleh C, C++, Java, JavaScript, Rust, dan Swift. Pembaruan ini tidak memengaruhi program yang sudah ada.
Sebagai bagian dari pemutakhiran model memori, tipe baru telah diperkenalkan dalam paket sync/atomic, termasuk atomik.int64 dan atomik.Pointer(T), membuatnya lebih nyaman untuk menggunakan nilai atomik. Go 1.19 kini tersedia untuk diunduh dari go.dev untuk Windows, macOS, dan Linux.
Fitur Tambahan di Go 1.19
Selain penyempurnaan generik dan model memori baru, Go 1.19 telah memperkenalkan fitur lain:
- Batas memori lunak ditambahkan ke pengumpul sampah, yang membantu mengoptimalkan program Go yang berjalan dalam wadah dengan alokasi memori khusus.
- Peningkatan performa dan implementasi, seperti ukuran dinamis tumpukan coroutine untuk mengurangi penyalinan tumpukan, penggunaan otomatis deskriptor file tambahan pada sebagian besar sistem Unix, tabel lompat untuk pernyataan sakelar besar pada x86-64 dan ARM64, dan dukungan untuk pemanggilan fungsi yang disuntikkan debugger pada ARM64.
- Koreksi kecil dilakukan untuk mengetikkan parameter dalam deklarasi metode tanpa memengaruhi program yang ada.
- Komentar dokumen kini mendukung tautan, daftar, dan sintaks tajuk, membuat komposisi komentar dokumen menjadi lebih jelas, terutama untuk paket dengan API ekstensif.
- Untuk tujuan keamanan, paket os/exec tidak lagi mengizinkan jalur relatif dalam pencarian PATH.
- Batasan build baru, unix, diperkenalkan, yang dipenuhi saat OS yang ditargetkan beroperasi pada sistem mirip Unix apa pun.
Karena adopsi platform no-code dan low-code seperti AppMaster increases, it is essential for developers to stay up to date with the latest advancements in popular programming languages like Go. The integration of Go with AppMaster can speed up backend applications' development, offering enhanced scalability and cost-effectiveness. Go 1.19 brings substantial improvements to boost performance, security, and developer experience, strengthening its position as a vital tool for modern software development.