October 22, 2015

Misi Mencari IDE Untuk Go

UPDATE: Selepas beberapa hari menggunakan Atom, saya jumpa satu bug. Kalau saya ada masa untuk reproduce bug tersebut, saya akan submit issue. Jadi, untuk mengelak daripada bug tersebut, saya kembali menggunakan LiteIDE dan mendapati IDE tersebut sudah boleh 'nampak' package appengine disebabkan langkah-langkah yang saya lakukan di bawah. Yay!

Pada masa akan datang, mungkin saya akan cuba Eclipse pulak.

Saya memilih Go sebab saya perlukan programming language yang strict. Walaupun Go masih baru, Go menepati citarasa saya, antaranya static-typing. Kelebihan static-typing language adalah supaya dapat manfaat daripada IDE, seperti code auto-completion. Disebabkan Go masih baru, support daripada IDE tidaklah setanding dengan Java. Cari punya cari, akhirnya saya jumpa text editor yang boleh menjadi IDE untuk Go, iaitu Atom.

Untuk menggunakan Atom untuk Go, saya menambah package go-plus. Selepas selesai install package tersebut, saya download functionality yang diperlukan seperti gocode, gofmt, goimports, go vet, golint, go build dan go test.

Sebelum ini saya menggunakan LiteIDE. LiteIDE juga bagus, tetapi disebabkan saya menggunakan cloud hosting Google App Engine, ada beberapa package yang IDE tersebut 'tak nampak'. Jadi, package appengine dan yang berkaitan tidak dapat support daripada code auto-completion.

Untuk membuatkan Atom boleh nampak package appengine, saya perlu set library path untuk gocode dengan cara:

gocode set lib-path c:\go_appengine\goroot\pkg\windows_amd64_appengine

Sekarang barulah ada code auto-completion untuk package appengine.

Satu lagi masalah ialah apabila save file program Go, akan keluar error yang menyatakan src/appengine tidak berada dalam $GOPATH dan $GOROOT. Untuk menyelesaikan masalah ini, saya membuat symlink:

mklink /J $GOPATH/src/appengine c:\go_appengine\goroot\src\appengine
mklink /J $GOPATH/src/appengine_internal c:\go_appengine\goroot\src\appengine_internal

mklink ialah command dalam Windows untuk membuat symlink. Kalau anda menggunakan operating system yang lain akan berbeza.

Walaupun semua steps di atas agak leceh, saya tetap berpuas hati.

Alternatif kepada semua cara di atas adalah dengan menggunakan package appengine yang baru iaitu google.golang.org/appengine. Tetapi dengan menggunakan package tersebut, saya tidak dapat code auto-completion jika menggunakan package yang berada di dalamnya seperti google.golang.org/appengine/user dan google.golang.org/appengine/log.

Tags: go