Kategori Artikel : IT Insight
27 October 2021
Published in HIMIT PENS MEDIUM
Written by Irvan Eksa Mahendra
Golang adalah bahasa pemrograman prosedural yang dibuat di Google menggunakan bahasa pemrograman C oleh Robert Griesemer, Rob Pike dan Ken Thompson pada tahun 2007 dan dirilis sebagai bahasa pemrograman open source pada tahun 2009.
Golang mulai populer sejak digunakan untuk membuat Docker pada tahun 2011. Saat ini Go-Lang mulai populer untuk pembuatan Backend API pada arsitektur Microservices serta mulai banyak teknologi baru yang dibuat menggunakan bahasa Go-Lang daripada bahasa C, seperti Kubernetes, Prometheus, CockroachDB dan lain-lain.
Sepengalaman saya, Golang sangat mudah dipelajari, bahkan Golang lebih mudah dipelajari daripada Java, .Net, Javascript, Phyton atau bahkan PHP. Environment Go mudah sekali di setup, sehingga cukup semalam saja mempelajari Golang kamu pasti akan percaya diri untuk membuat simple HTTP Server atau command-line app.
Selain itu Golang juga tidak membawa banyak konsep atau paradigma seperti Object Oriented Programming, Functional Programming, dan bahkan Golang juga tidak memiliki konsep Generic Programming.
Garbage Collector dapat mendeteksi objek-objek mana yang masih digunakan dan mana yang tidak. Tujuannya memang untuk mengosongkan memori agar tidak terlalu penuh. Sehingga, memori yang tersedia bisa dimaksimalkan untuk hal-hal yang lebih penting.
Concurrency memungkinkan program untuk berjalan secara asynchronous sehingga program dapat mengeksekusi banyak request dalam waktu yang bersamaan. Hal ini tidak dimiliki oleh beberapa bahasa pemrograman lain seperti misalnya PHP.
Concurrency di Golang sangat efisien, bahkan bisa dibilang superior. Yang membedakan adalah Concurrency di Golang menggunakan fitur yang dinamakan Goroutines
Goroutine merupakan salah satu bagian paling penting dalam concurrency programming di Golang. Salah satu yang membuat goroutine sangat istimewa adalah eksekusinya dijalankan di multi core processor. Kita bisa menentukan berapa banyak core yang aktif, makin banyak akan makin cepat.
Goroutine dapat saling berkomunikasi atau synchronize dengan Goroutine lain menggunakan fitur Channel yang mana akan sangat menguntungkan dalam mengatur flow sistem di dalam program, dimana Channel ini dikenal sangat efisien dan low latency.
Dari sudut pandang memori, thread pada Sistem Operasi (OS) mempunyai fixed stack size sebesar 1â2MB, sedangkan Goroutine hanya membutuhkan 2KB. Hal ini yang membuat program Golang sangat ringan dan efisien sehingga Golang sering digunakan pada pengembangan backend yang membutuhkan traffic besar seperti E-Commerce, Raid Hailing, API Server dan lain sebagainya.
Karena Goroutine sangat ringan, maka eksekusi banyak Goroutine bukan sebuah masalah. Akan tetapi jika jumlah Goroutine sangat banyak sekali (misalnya 1 juta Goroutine dijalankan pada komputer dengan RAM terbatas), maka proses akan jauh lebih cepat selesai, tetapi memori atau RAM pasti akan membengkak.
Selain itu Golang juga mempunyai Go Race detector untuk mendeteksi race condition yang mana fitur ini sangat dibutuhkan oleh developer, mungkin hal ini akan bisa dirasakan oleh kalian yang sudah pernah membuat aplikasi multithreading.
Meskipun secara bahasa pemrograman, GoLang cukup general (multi purpose language), tapi Golang juga dibuat dengan mindset Web Modern, sehingga tools untuk membuat Web atau API sudah disediakan dan sangat powerfull, tanpa harus menggunakan library atau framework tambahan.
Jika kamu ingin bisa terus bersaing di industri teknologi kedepannya tepatnya pada bidang Software Engineering, Golang adalah salah satu bahasa pemrograman yang wajib kamu kuasai.
Institut Teknologi Sepuluh Nopember, Kampus, Jl. Raya ITS, Keputih, Kec. Sukolilo, Kota SBY, Jawa Timur 60111, Indonesia