Kenapa saya pindah dari Golang ke NodeJS

Saya adalah penggemar compiled programming karena cepat dalam eksekusi, mungkin itulah alasan dulu saya menggunakan Golang pada proyek-proyek saya. Dan saya masih keras kepala untuk tidak membuka diri menggunakan bahasa lain, contoh python, js, ruby, dll.

Pada akhirnya saya mengerjakan sebuah proyek front end (yaitu menggunakan React JS), dan mengharuskan saya untuk belajar JS dan JSX secara lebih mendalam. Dalam perjalanan proyek itupun saya mulai membuka diri untuk bisa menerima bahasa lain dan pada akhirnya sayapun enjoy dengan React JS dengan JS dan JSXnya.

Dan sayapun berfikir, kalau backend pakai JS juga kayaknya juga enak nih. Ya seperti kita tahu bahwa Node JS performance request perdetiknya kalah jauh dengan Golang, dan dalam pikiran sayapun muncul pertanyaan, emang proyekku harus handle berapa request perdetik kok harus capek2 mikirin performance dan menggunakan Golang?

Akhirnya sayapun membuka diri dan mencari2 tentang Node JS, setelah beberapa hari pencarian tersebut akhirnya sayapun memutuskan bahwa pada proyek2 selanjutnya saya akan menggunakan Node JS.

Berikut adalah alasan saya kenapa saya pindah dari Golang ke Node JS

  1. Fitur bahasa di Golang menurut saya kurang fleksibel.
    Contoh adalah kode berikut :

    Walupun kita punya if yang hanya 1 statement, kita masih wajib menggunakan kurung kurawal. Sehingga menjadikan baris kode lebih panjang dibangding jika dilakukan di JS
  2. Dukungan IDE masih minim
    Terakhir saya menggunakan VSCode sebagai IDE Golang saya namun fiturnya masih jauh dari kata bagus, kadang auto complete enggak jalan, go to definition kadang enggak bisa. Ada IDE berbayar dari jetbrains yaitu GoLand, namun berbayar. Kalau proyek saya gede sih OK kalau harus bayar GoLand, namun proyek saya tidaklah segede gaban.
    Berbeda dengan NodeJS, dukungan IDE VSCodenya sangatlah bagus dan gratis.
  3. Debugging
    Di Golang untuk debugging biasanya saya menggunakan fmt.Println yaitu ngeprint variable, ya seperti jaman dulu gitu lah. Sampai saat ini saya belum pernah debuggin dengan break point di VSCode Golang, sebenernya bisa namun karena saya menggunakan library lain (auto compile ketika ada perubahan di code), sehingga untuk debugging ini memerlukan beberapa step, dan ketika saya cobapun belum berhasil akhirnya saya tinggalkan saja dan melanjutkan ngoding dari pada banyak waktu terbuang.
    Sebaliknya di NodeJS, debugging menggunakan break point jauh lebih mudah stepnya dibanding dengan Golang diatas.
  4. Library tak selengkap Node JS
    Pengalaman saat saya mengerjakan beberapa proyek Golang, memang tidak pernah kesusahan dalam mendapatkan library, namun untuk install dan managementnya tidaklah segampang dan sebanyak Node JS yang menggunakan NodeJS
  5. Overkill untuk proyek saya
    Proyek saya tidaklah proyek gede yang harus handle 1000 request per detik, bahkan 100 perdetikpun kayaknya tidak. Jadi menggunakan Golang hanya mengharapkan kecepatan padahal proyek saya kecil tidaklah sebanding dengan effort kodingnya jika dibanding menggunakan Node JS. Jadi proyek kecil saya menggunakan golang itu seperti membunuh lalat menggunakan bazooka (overkill).
    Dan yang patut dipertimbangkan juga adalah proyek kita pasti konek ke database, jadi kencang tidaknya backend juga banyak dipengaruhi oleh database ini. Saya juga baca beberapa review di internet bahwa pada kenyataan aplikasinya enggak akan terasa bedanya antara backend dengan NodeJS dan Golang.
  6. Telah menemukan library MongoDB keren di NodeJS yaitu mongoose
    MongoDB tidak menyediakan secara official driver untuk Golang, sehingga menggunakan pihak ketiga, dan saat ini status dari library tersebut sudah tidak didukung lagi oleh pembuatnya. Sedang di NodeJS telah disediakan official oleh MongoDB dan karena MongoDB sendiri menggunakan JS sebagai querynya, sangatlah cocok jika MongoDB ini disandingkan dengan NodeJS dan semakin sempurna dengan library pihak ketiga yaitu Mongoose. Dengan Mongoose kita dapat menggunakan schema, model, dll dengan sangat mudah.
  7. Waktu pengerjaan
    Diakui atau tidak dengan berkurangnya kode yang harus saya buat di JS dibanding menggunakan Golang, saya merasa proyek yang menggunakan NodeJS lebih cepet progressnya (atau mungkin saya masih terlalu exited dengan NodeJS)

Demikian alasan2 saya kenapa saya harus pindah dari Golang ke NodeJS. Golang merupakan bahasa yang bagus dengan performance yang memang tidak bisa ki komplain lagi, namun ada saatnya kecepatan eksekusi bukanlah segalanya. Sebagai catatan ini adalah pendapat personal saya, mungkin Anda memiliki pengalaman sebaliknya dengan saya.

Leave a Reply

Your email address will not be published. Required fields are marked *