Kalau kalian ngintip perkembangan dunia backend development dan cloud infrastructure beberapa tahun terakhir, ada satu bahasa yang namanya terus melesat: Go, atau yang sering disebut Golang.
Mulai dari raksasa teknologi kayak Google dan Uber, sampai Netflix, hingga alat DevOps populer seperti Docker dan Kubernetes—semuanya dibangun pakai bahasa bermaskot gopher lucu ini.
Lantas, kenapa bahasa yang tergolong masih muda ini bisa cepat banget populer di kalangan pengembang backend? Yuk, kita bahas bareng. 😎
Poin Penting
- Go dikompilasi langsung jadi satu single binary bertenaga tinggi, jadi dia nggak butuh virtual machine atau interpreter eksternal.
- Goroutine cuma makan memori awal sekitar 2 KB per unit, jauh lebih hemat dibanding OS thread yang bisa 1-2 MB.
- Channel bikin komunikasi antar Goroutine berjalan aman dan bebas dari race condition.
- Standard library bawaan Go sangat kaya dan udah siap pakai buat bikin HTTP server tanpa framework pihak ketiga.
Alasan di Balik Kelahiran Go
Go dikembangkan di Google sekitar tahun 2007 oleh tiga pakar ilmu komputer legendaris: Robert Griesemer, Rob Pike, dan Ken Thompson. Versi publiknya baru dirilis tahun 2009.
Waktu itu, para pengembang di Google dihadapkan pada dilema klasik saat milih bahasa pemrograman.
C/C++ sangat kencang dan efisien, tapi waktu kompilasinya (compile time) lelet dan manajemen memorinya rumit. Python dan Ruby sintaksnya indah dan nyaman ditulis, tapi eksekusinya lambat buat skala aplikasi raksasa. Java bertenaga, tapi sering terasa terlalu kaku alias verbose dengan konfigurasi yang menumpuk.
Go diciptakan buat ngambil keunggulan dari ketiga dunia itu sekaligus: performa setara C/C++, kemudahan penulisan yang mendekati Python, plus proses kompilasi yang super cepat.
Fitur Unggulan Bahasa Go
Ini beberapa alasan utama yang bikin Go disukai buat sistem backend:
- Statically typed & compiled: Go dikompilasi langsung jadi satu single binary file, jadi dia nggak butuh virtual machine kayak JVM atau interpreter.
- Kompilasi super cepat: proses build kode Go cuma makan waktu hitungan detik.
- Sintaks simpel dan minimalis: Go sengaja dirancang tanpa fitur rumit yang nggak perlu. Cuma ada 25 keyword dasar, lho!
- Garbage collection: mencegah memory leak tanpa kita harus ngatur memori manual kayak di C/C++, yang gampang bocor kalau nggak teliti.
- Built-in concurrency: penanganan konkurensi bawaan lewat Goroutine dan Channel.
Goroutine & Channel: Konkurensi Ringan dan Mudah
Fitur paling ikonik dari Go adalah Goroutine. OS thread biasa bisa makan memori sampai 1-2 MB per thread. Sebuah Goroutine? Cuma butuh memori awal sekitar 2 KB!
Artinya, kalian bisa menjalankan puluhan ribu sampai ratusan ribu Goroutine sekaligus di satu mesin, tanpa bikin RAM ngos-ngosan.
Ibaratnya gini. OS thread itu kayak nyewa satu bus besar cuma buat nganter satu penumpang. Goroutine lebih kayak armada sepeda motor lincah yang bisa jalan barengan, ngangkut ribuan penumpang dengan bensin jauh lebih hemat.
Buat komunikasi antar Goroutine, Go nyediain Channel. Jadi proses berbagi data antar thread berjalan aman tanpa bentrok atau race condition.
Contoh Kode HTTP Server Sederhana di Go
Tanpa perlu install framework atau library pihak ketiga, Go udah dibekali modul standar (net/http) yang siap pakai buat bikin server HTTP:
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Halo dari HTTP Server Go & Invasikode!")
})
fmt.Println("Server berjalan di http://localhost:8080")
http.ListenAndServe(":8080", nil)
}
Cukup simpan kode di atas sebagai main.go, lalu jalankan:
go run main.go
Dalam sekejap, server HTTP berkinerja tinggi kalian udah aktif dan siap melayani request.
Tertarik Nyobain Go di Proyek Baru?
Go membuktikan kalau bahasa backend modern nggak harus rumit dan bertele-tele buat bisa jalan super kencang. Dengan 25 keyword dasar, kompilasi kilat langsung ke single binary, plus keajaiban Goroutine yang hemat memori (~2 KB), wajar banget kalau Go jadi primadona baru di dunia cloud dan mikroservis.
Kalau kalian lagi merancang sistem dengan kebutuhan concurrency tinggi, atau pengen bikin microservices yang ramping dan bertenaga, Go jelas layak masuk daftar belajar kalian.
Selamat ber-Go ria, dan semoga RAM kalian selalu lega walau Goroutine-nya ngebut barengan! 👋