IDE dan editor bahasa Go terbaik

Bahasa Go Google, alias Golang, baru-baru ini dipilih sebagai bahasa pemrograman Tiobe tahun 2016, berdasarkan popularitasnya yang tumbuh pesat sepanjang tahun, lebih dari dua kali lipat dari runner-up Dart dan Perl. Indeks bahasa Tiobe didasarkan pada "jumlah insinyur terampil di seluruh dunia, kursus, dan vendor pihak ketiga," menggunakan hasil dari beberapa mesin telusur.

Pertumbuhan popularitas sebanyak itu membawa peningkatan minat pada alat pengembangan untuk bahasa pemrograman. Karena bahasa Go didistribusikan dalam bentuk sumber terbuka lengkap dengan kompiler, alat, dan pustaka, apa yang tersisa bagi pemrogram untuk menemukannya sendiri adalah lingkungan pengeditan Go-aware, baik editor langsung atau lingkungan pengembangan terintegrasi (IDE), dihosting secara lokal atau di awan.

Untuk artikel ini, saya telah mencoba untuk melihat semua lingkungan pengeditan Go-aware yang tersedia dan membidik yang tampak bermanfaat. Saya mulai dengan daftar resmi IDE dan Plugin untuk Go dan menampi sekitar 35 item dalam daftar menjadi yang mungkin layak untuk dicoba. Saya akan mulai dengan ringkasan singkat dari produk bermanfaat yang saya temukan di setiap kategori dan diakhiri dengan melihat dari dekat pilihan teratas saya.

Perhatikan bahwa pengembangan bahasa Go biasanya bergantung pada variabel GOPATH yang disetel ke root ruang kerja pengembangan Go Anda. Itu bisa menjadi masalah untuk aplikasi GUI seperti editor, yang tidak selalu menghormati pengaturan lingkungan.

Ada lebih dari selusin alat bahasa Go yang dapat Anda instal di direktori di bawah folder GOPATH dengan go getperintah, setelah Go sendiri diinstal. Banyak editor yang saya evaluasi menggunakan satu atau lebih alat ini.

Gunakan IDE

Ada sejumlah IDE yang mendukung Go. Namun, arti “dukungan” berbeda-beda. Empat IDE menonjol bagi saya: Gogland, Eclipse dengan goclipse, LiteIDE, dan Komodo IDE.

Di kelas atas, Gogland dari JetBrains menampilkan penyelesaian cerdas, inspeksi dan perbaikan cepat, pemfaktoran ulang sederhana, navigasi cepat, popup cepat, beberapa pembuatan kode yang sangat dasar, deteksi panggilan rekursif, popup jenis ekspresi, penyorotan titik keluar, penemuan penggunaan, pemformatan kode, penyorotan semantik, dan petunjuk parameter di editornya. Ya, itu banyak sekali fungsi untuk mengedit bahasa muda. Fitur Gogland lainnya termasuk debugger terintegrasi, analisis cakupan, pengujian yang berjalan, menu untuk menjalankan alat Go, dan beberapa fungsi non-khusus Go yang serupa dengan apa yang akan Anda temukan di produk JetBrains lainnya, seperti IntelliJ IDEA. Gogland dapat mengelola beberapa setelan GOPATH, daripada mengandalkan secara eksklusif pada lingkungan GOPATH sistem.

Gogland saat ini tersedia gratis sebagai produk akses awal. Ini kemungkinan akan dihargai sesuai dengan produk JetBrains lainnya pada akhirnya. Berharap itu akan tersedia dengan langganan tahunan baik dengan sendirinya atau dalam paket dengan alat JetBrains lainnya, dengan diskon untuk akademisi dan kontributor open source.

Pada tingkat kerumitan yang sedikit lebih rendah, Eclipse dengan goclipse menyediakan penyorotan sintaks, indentasi otomatis, dan garis tepi di editornya, semuanya dalam semangat modul bahasa Eclipse lainnya seperti Java. Integrasi mencakup proses debug dengan GDB, pencarian definisi dengan alat guru dan godef Go, dan pelengkapan otomatis dengan alat gocode. Eclipse dan plugin goclipse gratis dan open source.

LiteIDE menggunakan browser paket, tampilan dan garis besar kelas, browser dokumen, navigasi kode, menemukan penggunaan, dan pemfaktoran ulang kode di editornya. Integrasi menampilkan dukungan gocode, indeks GOPATH API, debugging dengan GDB, dan arena bermain Go. LiteIDE gratis dan open source.

Komodo IDE mendukung pemeriksaan sintaks Go (linting) dan penyorotan, pewarnaan sintaks, pelipatan kode, dan fitur peningkatan produktivitas lainnya. Komodo juga mendukung kecerdasan kode Go dengan kelengkapan, tip panggilan, garis besar, dan masuk ke definisi. Refactoring termasuk mengganti nama variabel dan anggota kelas dan ekstraksi metode. Komodo mendukung pengujian unit Go, kolaborasi kode, kontrol versi, shell interaktif, dan pembuatan profil kode. Klaim utama Komodo atas ketenaran adalah bahwa ia mendukung semua bahasa sumber terbuka utama, termasuk Python, Node.js, Ruby, Go, Perl, dan Tcl.

Komodo IDE adalah produk komersial. Editor Komodo, yang memiliki sebagian dari kemampuan IDE, gratis.

Pergi editor

Meskipun IDE mungkin menyediakan semua fungsi yang Anda inginkan untuk mengembangkan kode, IDE sering kali terasa "berat". Dengan kata lain, mereka membutuhkan waktu lama untuk memulai, menggunakan banyak memori, dan terkadang merasa tidak responsif saat Anda mengetik kode karena mereka melakukan terlalu banyak hal di latar belakang. Editor kode terkadang lebih disukai, terutama untuk sesi pendek, selama Anda tidak terganggu dengan harus beralih ke jendela shell baris perintah terpisah untuk kompilasi.

Plugin terkadang dapat menambahkan fitur seperti IDE ke editor kode. Itu biasanya bagus, selama overhead periodik untuk menjaga plugin tetap up-to-date dan overhead konstan dari proses yang menjalankan plugin di latar belakang tidak memperlambat pengeditan Anda.

Atom, Brackets, dan Visual Studio Code adalah tiga editor yang menonjol bagi saya karena bekerja dalam bahasa Go. Semuanya gratis dan open source. Namun demikian, BBEdit, Emacs, Notepad ++, Sublime Text, TextMate, dan Vim semuanya terintegrasi dengan plugin bahasa Go, dan semuanya memiliki pendukungnya. Emacs, Notepad ++, dan Vim gratis dan bersumber terbuka. BBEdit bersifat komersial, tetapi adik laki-lakinya TextWrangler gratis.

Editor Atom dari GitHub dilengkapi dengan paket bahasa-go, yang mendukung tata bahasa dan cuplikan Go. Paket tambahan untuk Go menghadirkan lebih banyak fungsionalitas. Misalnya, go-plus terintegrasi dengan banyak alat Go standar (untuk pelengkapan otomatis, pemformatan, linting, pengujian) untuk menyediakan lingkungan seperti IDE, dan go-debug terintegrasi dengan debugger delve.

Editor Brackets dari Adobe memiliki beberapa ekstensi komunitas untuk dukungan Go. Ini termasuk Go-IDE, yang digunakan gocodeuntuk pelengkapan otomatis; Go-Syntax, yang menggunakan CodeMirror untuk penyorotan sintaks; dan Improved Go Formatter, yang digunakan gofmtuntuk memformat kode dan goimportsmengelola impor.

Visual Studio Code mendukung penyorotan sintaks Go di luar kotak. Fitur tambahan disediakan oleh plugin vscode-go, yang terintegrasi dengan lebih dari selusin alat Go standar. Jika Anda belum menyetel GOPATH, plugin akan meminta Anda untuk menyetelnya segera setelah Anda mencoba mengedit file bahasa Go; Anda dapat mengaturnya untuk proyek dan / atau lingkungan sistem. Jika Anda belum menginstal alat Go, plugin akan meminta untuk menginstalnya di tempat standar seperti yang ditentukan oleh GOPATH Anda.

Go IDE berbasis cloud

IDE berbasis cloud adalah inovasi yang relatif baru dalam ruang pengembangan perangkat lunak. Mereka memiliki dua keuntungan yang melekat: Mereka tidak memerlukan pengaturan lokal selain browser yang kompatibel, dan mereka dapat memungkinkan pengeditan oleh beberapa pengembang jika dirancang untuk itu. Sisi negatifnya, IDE berbasis cloud sering mengalami kelambatan, yang dapat membuat pengembang gila dan mengganggu "aliran" yang memungkinkan pembuat kode menjadi paling produktif. Tiga IDE berbasis cloud saat ini mendukung bahasa Go: Cloud9, CodeEnv, dan Wide.

Cloud9 adalah IDE berbasis cloud multibahasa yang mendukung Go out of the box. Ini terhubung dengan repositori GitHub, Bitbucket, dan Google Cloud Platform, dan memiliki ruang kerja yang dapat Anda bagikan dan klon. Selain editor kode dengan serangkaian fitur ekstensif dan sistem file online, ia memiliki MySQL dan database lain, terminal dan jendela langsung, dan binding keyboard yang dapat disesuaikan, dengan mode Vim, Emacs, dan Sublime Text yang disediakan standar. Pelengkapan otomatis dan debugging untuk Go masih eksperimental, tetapi penyorotan sintaks, panel jalankan, tampilan garis besar, dan linting semuanya didukung sepenuhnya.

CodeEnv juga merupakan IDE berbasis cloud multilanguage. Ada gambar lingkungan dasar Go untuk lingkungan pribadi, serta gambar lingkungan Go publik. Setiap lingkungan terdiri dari sistem file, editor kode sederhana dengan penyorotan sintaks, dan jendela terminal. Saat ini tersedia delapan pilihan gambar dasar dan enam pilihan gambar back-end.

Wide adalah IDE berbasis web untuk tim yang ditulis dalam dan untuk bahasa pemrograman Go. Ia menggunakan editor pemrograman bertema CodeMirror dengan penyorotan sintaks yang dibantu gocode, pelengkapan otomatis, pemformatan kode, dan kolaborasi waktu nyata. Wide mengutip LiteIDE sebagai dependensi.

Gogland

JetBrains Gogland, saat ini dalam status pratinjau awal, tampaknya menjadi IDE Go terlengkap yang tersedia, meskipun belum dirilis secara komersial. Debugger terintegrasi, analisis cakupan, dan pengujian yang berjalan sangat jauh untuk membedakannya dari editor run-of-the-mill yang memiliki beberapa integrasi alat.

Pada tangkapan layar di bawah, di mana saya menggunakan Gogland untuk memeriksa beberapa kode sumber proyek bahasa Go, Anda dapat melihat beberapa fitur pengeditan Gogland, termasuk pohon proyek, petunjuk inspeksi (bola lampu), penyorotan titik keluar, dan penelusuran cepat menggunakan bilah navigasi di sebelah kanan (kotak kode dengan nomor baris rusak). Untuk lebih banyak tangkapan layar yang menunjukkan apa yang bisa dilakukan Gogland, saya akan merujuk Anda ke panduan fitur JetBrains.

Gogland menggunakan ekosistem plugin JetBrains yang sama dengan IntelliJ IDEA dan WebStorm, dan sudah menyertakan banyak fitur relevan yang diwarisi dari produk tersebut. Misalnya, Anda dapat menggunakan Gogland untuk bekerja dengan HTML dan bahasa serta kerangka kerja front-end, persis seperti WebStorm. Gogland juga memungkinkan Anda bekerja dengan database SQL, seperti IntelliJ IDEA dan DataGrip. Jika Anda perlu menggabungkan dukungan Node.js dengan pengkodean Go Anda atau membutuhkan dukungan Subversion selain integrasi Git, itu masalah cepat dalam menambahkan plugin.

Kode Visual Studio

Visual Studio Code dengan plugin vscode-go adalah editor Go bagus yang bekerja dengan baik dan memiliki integrasi Git yang baik. Visual Studio Code memang membutuhkan pembaruan dan restart setidaknya setiap bulan, tetapi jarang terasa lambat selama pengeditan. Pada tangkapan layar di bawah ini kita melihat penjelajah di sebelah kiri, instalasi alat Go di kanan bawah, dan pengeditan kode di kanan atas.

Alat Go mengaktifkan plugin vscode-go, yang menyediakan banyak fitur pengeditan dan pemeriksaan kode. Ini termasuk daftar penyelesaian (menggunakan gocode), bantuan tanda tangan (menggunakan gogetdocatau godefplus godoc), cuplikan, info cepat (menggunakan gogetdocatau godefplus godoc), pergi ke definisi (menggunakan gogetdocatau godefplus godoc), menemukan referensi (menggunakan guru), kerangka file (menggunakan go-outline), pencarian simbol ruang kerja (menggunakan go-symbols), mengganti nama (menggunakan gorename), build-on-save (menggunakan go builddan go test), lint-on-save (menggunakan golintatau gometalinter), memformat (menggunakan goreturnsatau goimportsatau gofmt), menghasilkan kerangka pengujian unit (menggunakan gotests), menambahkan impor (menggunakan gopkgs), dan debugging yang diterapkan sebagian (menggunakandelve).

Itu banyak sekali fungsionalitas yang berguna, meskipun tidak sebanyak yang Anda dapatkan di Gogland IDE. Screencast dalam file vscode-go readme melakukan pekerjaan yang baik dalam mendemonstrasikan cara kerja sebagian besar fitur.

Cloud9

Dari tiga Cloud IDE yang mendukung Go, yang paling menarik saat ini adalah Cloud9. Ia memiliki editor pemrograman yang paling fungsional dari ketiganya dan mendukung sekitar 17 bahasa selain Go. Meskipun penyelesaian kode bahasa Go-nya ditandai sebagai eksperimental, saya menemukan itu bekerja dengan cukup baik dan tidak menyebabkan banyak penundaan pengetikan.

Editor Ace Cloud9 saat ini mendukung penyorotan sintaks untuk lebih dari 100 bahasa pemrograman. Angka 17 di atas adalah untuk bahasa yang juga memiliki dukungan lain, seperti menjalankan kode, linting, menguraikan, penyelesaian kode, dan debugging.

Ruang kerja Cloud9 saat ini menjalankan Ubuntu 14.04 dan Go 1.7.3. Anda dapat memperbarui instalasi Go Anda dari shell Bash (lihat bagian bawah tangkapan layar), serta menjalankan Go Anda dan program lain dari Bash.

Seperti yang telah kita lihat, Anda memiliki banyak pilihan lingkungan pemrograman untuk pengembangan Go. Meskipun saya memilih Gogland sebagai IDE Go berfitur lengkap terbaik, Visual Studio Code dengan vscode-go sebagai editor Go terbaik, dan Cloud9 sebagai IDE cloud Go terbaik untuk saya , ada lebih dari 30 kemungkinan lainnya. Mengingat betapa personalnya pilihan lingkungan pengembangan perangkat lunak, Anda harus mencoba beberapa dan melihat mana yang paling sesuai dengan kebutuhan dan preferensi Anda.