Go Language & 10 Alasan Mengapa Kamu Akan Menyukainya
Hi AdIners!
Pada kesempatan ini saya akan mengenalkan ke kalian semua bahasa pemrograman yang digunakan oleh perusahaan-perusahaan besar sebagai bahasa pemrograman server mereka, yaitu bahasa Go yang biasa disebut juga dengan Golang.
Go Language adalah salah satu bahasa pemrograman Open Source yang di perkenalkan oleh Robert Griesemer, Rob Pike, dan Ken Thompson, mereka ini adalah mantan karyawan Google, dan bahasa ini mulai dikenalkan ke publik tahun 2007.
Singkatnya agar artikel ini tidak terlalu panjang, langsung saja akan saya sampaikan keuntungan dan kelebihan Go yang sudah saya rangkum, artikel ini juga berdasarkan pengalaman saya selama ini menggunakannya.
- Pengguna Go
Go digunakan oleh perusahaan-perusahaan yang terkenal dan mempunyai capital yang besar, yang berarti Go sudah dianggap proven sebagai bahasa pemrograman, sehingga bahasa ini dipercaya oleh perusahaan-perusahaan penting tersebut sebagai dasar untuk membuat sistem mereka.
Berikut beberapa perusahaan tersebut:
Masih banyak lagi perusahaan besar diluar sana yang menggunakan Go, jika kalian tertarik, silahkan check pada link berikut:
- Performance
Go Language adalah compiled language, sehingga secara performance sudah pasti jauh diatas bahasa pemrograman lain seperti PHP atau Phyton misalnya, dan Go dibuat oleh mantan engineer Google yang memang sudah berpengalaman dalam hal programming server.
Go sangat efisien untuk penggunaan CPU, dan bisa memanfaatkan multi core dengan efisien, sehingga sudah banyak sekali sukses story diluar sana yang mengatakan bahwa dengan berpindah ke Go, mereka bisa berhemat banyak server. Silahkan check disini ini jika kamu ingin mengetahui lebih lanjut.
- Cross Compiled
Hanya cukup sekali saja menulis code program AdIners, dan program tersebut akan bisa dijalankan hampir di semua system operasi, mulai dari Windows, Mac OS, Linux dan sebagainya. Check list lengkap system operasi yang didukung disini.
- Strongly dan Static typed language
Mekanisme ini memungkinkan error/kesalahan yang kita buat keluar sebelum runtime berjalan, sehingga kita tidak membuang banyak waktu untuk build dan test program yang nantinya akan error.
- Statically Linked
Fitur ini membuat program kita tidak bergantung pada library atau dependencies apapun di device yang akan kita install, juga tidak perlu menginstall Go di device tersebut, fitur ini yang membuat unggul dari kebanyakan bahasa pemrograman lain.
- Tidak perlu Web Framework untuk menangani HTTP request
Kabar gembira bagi kalian Web developer, hanya dengan beberapa line syntax kalian sudah bisa membuat Web tanpa harus menggunakan library tambahan di Go.
Meskipun secara bahasa pemrograman Go Language adalah cukup general (multi purpose language), tapi Go juga dibuat dengan mindset Web Modern, sehingga tools untuk membuat Web/API sudah disediakan dan sangat powerfull, tanpa harus menggunakan library/framework tambahan.
- IDE Support dan Debugging
Golang salah satu bahasa pemrograman open source, sehingga dukungan IDE sangat luas, banyak sekali IDE multi-platform yang mendukung Go, seperti Visual Studio Code, Sublime, GoLand dan lain sebagainya, yang mana akan sangat menguntungkan developer karena tidak harus terikat dengan OS yang kita gunakan, semisal hanya support di Windows atau Mac OS saja.
- Easy and Powerfull Go Routines untuk Concurrency Programming
Sebelum kita bahas lebih lanjut, concurrency berbeda dengan Paralell programming (multithreading dsb), concurrency di Go sangat efisien, bahkan bisa dibilang superior.
Yang membedakan Multithreading atau paralell programming biasa, Concurrency di Go menggunakan fitur yang dinamakan Go Routines, dan Go Routines bisa saling berkomunikasi/synchronize dengan menggunakan fitur channel, yang mana akan sangat menguntungkan dalam mengatur flow sistem di dalam program, dan channel ini dikenal sangat efisien dan low latency, selain itu Go juga mempunyai Go Race detector untuk mendeteksi race condition yang mana feature ini sangat dibutuhkan untuk developer, mungkin hal ini akan bisa dirasakan oleh kalian yang sudah pernah minimal membuat multithreading aplikasi.
Dari sudut pandang memory, thread pada OS mempunyai fixed stack size sebesar 1-2MB, sedangkan Go Routines hanya membutuhkan 2KB. Hal ini yang membuat Go program sangat ringan, dan efisien, sehingga tidak heran Go sering digunakan pada backend program yang membutuhkan traffic besar seperti e-commerce, raid hailing, API server dan sebagainya.
- Completely Garbage Collected, No downtime
Go sudah fully-garbage collected, dan bisa dibilang GC pada Go cukup Superior dibanding dengan bahasa pemrograman lain, dan di claim hampir mendekati zero downtime/pause, sehingga impactnya resource yang digunakan oleh Go akan lebih efisien.
- Learning Curve yang Mudah dipelajari
Sepengalaman saya Go sangat mudah dipelajari, bahkan Go lebih mudah dipelajari daripada Java, .Net, Javascript, Phyton atau bahkan PHP. Environment Go mudah sekali di setup, sehingga cukup semalam saja mempelajari Go kamu pasti akan percaya diri untuk membuat simple HTTP Server atau command-line app.
Bagi yang mulai menyukai Golang, berikut saya berikan referensi web favorit saya di Go Example.
Semoga artikel ini bermanfaat bagi AdIners.
Written by Kharis H