最高のGo言語IDEとエディター

GoogleのGo言語、別名Golangは、次点のDartとPerlの2倍以上という、1年間の急激な人気上昇に基づいて、最近Tiobeの2016年のプログラミング言語として選択されました。 Tiobe の言語インデックスは、複数の検索エンジンの結果を使用して、「世界中の熟練エンジニアの数、コース、およびサード パーティ ベンダー」に基づいています。

それだけの人気の高まりは、プログラミング言語用の開発ツールへの関心の高まりも伴います。 Go 言語は、コンパイラー、ツール、およびライブラリが完備したオープン ソース形式で配布されているため、プログラマーが自分で見つけるべきものは、ローカルまたはクラウドでホストされる、ストレート エディターまたは統合開発環境 (IDE) である Go 対応の編集環境です。

この記事では、Go 対応の編集環境をすべて見て、価値があると思われるものに焦点を当てようと試みました。 公式の IDEs and Plugins for Go リストから始め、約 35 のアイテムを試してみるに値するものに絞り込みました。

Go 言語開発は通常、GOPATH 変数を Go 開発ワークスペースのルートに設定することに依存していることに留意してください。

エディターのような GUI アプリケーションでは、環境設定を常に尊重するとは限らないので、問題になりえます。

一旦 Go 自体がインストールされると、go get コマンドで GOPATH フォルダ下のディレクトリにインストールできる Go 言語ツールが 1 ダース以上あります。 私が評価したエディターの多くは、これらのツールの 1 つ以上を使用しています。

Go IDE

Go をサポートする IDE は驚くほど多く存在します。 しかし、「サポート」の意味はさまざまです。 私の場合は、4 つの IDE が目立ちました。

ハイエンドでは、JetBrains の Gogland は、スマートな補完、検査とクイック フィックス、シンプルなリファクタリング、クイック ナビゲーション、クイック ポップアップ、いくつかの非常に基本的なコード生成、再帰呼び出し検出、式タイプ ポップアップ、終了点ハイライト、使用法検索、コード フォーマット、意味的ハイライト、エディターのパラメーター ヒントといった機能を提供しています。 そう、若い言語を編集するための多くの機能です。 その他の Gogland の機能には、統合デバッガー、カバレッジ解析、テスト実行、Go ツールの実行メニュー、および IntelliJ IDEA などの他の JetBrains 製品に見られるような非 Go 固有の機能などがあります。 Gogland は、システムの GOPATH 環境にのみ依存するのではなく、複数の GOPATH 設定を管理できます。

Gogland は現在、早期アクセス製品として無料で利用できます。 最終的には、他の JetBrains 製品と同じような価格で提供される予定です。

やや低いレベルの複雑さですが、Eclipse with goclipse は、Java などの他の Eclipse 言語モジュールの精神に則り、エディターでの構文強調表示、自動インデント、およびアウトライン化を提供します。 GDB によるデバッグ、guru および godef Go ツールによる定義検索、gocode ツールによるオートコンプリートなどの統合があります。 Eclipse と goclipse プラグインは無料でオープン ソースです。

LiteIDE は、パッケージ ブラウザ、クラス ビューとアウトライン、ドキュメント ブラウザ、コード ナビゲーション、使用法の検索、およびエディターでのコード リファクタリングを備えています。 統合は、gocode サポート、GOPATH API インデックス、GDB でのデバッグ、および Go プレイグラウンドを特徴とします。

Komodo IDE は、Go のシンタックスチェック (リント) とハイライト、シンタックスカラーリング、コードの折りたたみ、およびその他の生産性を向上させる機能をサポートしています。 また、補完、呼び出しのヒント、アウトライン、Go-to-Definition などの Go コードインテリジェンスもサポートしています。 リファクタリングには、変数やクラスメンバーの名前の変更、メソッドの抽出などが含まれます。 Komodoは、Goのユニットテスト、コードコラボレーション、バージョン管理、インタラクティブシェル、コードプロファイリングをサポートしています。 Python、Node.js、Ruby、Go、Perl、Tclなど、主要なオープンソース言語をすべてサポートしていることがKomodoの大きな特長です。

Komodo IDEは商用製品です。

Komodo IDE は商用製品で、IDE の機能のサブセットを持つ Komodo Editor は無料です。

Go エディター

IDEはコード開発に必要なすべての機能を提供するかもしれませんが、IDEはしばしば「重い」と感じられることがあります。 言い換えれば、IDE は起動に時間がかかり、多くのメモリを使用し、バックグラウンドで多くのことを行っているため、コードを入力するときに反応が悪く感じることがあります。

プラグインは、IDE のような機能をコード エディターに追加できることがあります。

アトム、ブラケッツ、および Visual Studio Code は、私が Go 言語で作業する際に注目した 3 つのエディターです。 すべて無料でオープン ソースです。 とはいえ、BBEdit、Emacs、Notepad++、Sublime Text、TextMate、および Vim はすべて Go 言語プラグインと統合されており、すべてに支持者がいます。 Emacs、Notepad++、Vimはフリーでオープンソースです。 BBEdit は商用ですが、その弟分の TextWrangler は無料です。

GitHub の Atom エディターには、Go 文法とスニペットをサポートする language-go パッケージが同梱されています。 Go 用の追加パッケージは、より多くの機能をもたらします。 たとえば、go-plus は多くの標準的な Go ツール (オートコンプリート、フォーマット、リンティング、テスト) と統合して IDE のような環境を提供し、go-debug は delve デバッガーと統合します。

Adobe の Brackets エディターには Go サポート用のコミュニティ拡張がいくつか用意されています。 自動補完に gocode を使用する Go-IDE、構文強調に CodeMirror を使用する Go-Syntax、コードのフォーマットに gofmtgoimports を使用する Improved Go Formatter などです。

視覚スタジオ コードでは Go 構文強調をすぐに使用できるようになりました。 追加機能は vscode-go プラグインによって提供され、1 ダース以上の標準 Go ツールと統合されます。 GOPATH が設定されていない場合、Go 言語ファイルを編集しようとするとすぐにプラグインが GOPATH を設定するように要求します。 Go ツールがインストールされていない場合、プラグインは GOPATH によって決定される標準的な場所にインストールするように要求します。

クラウドベースの Go IDE

クラウドベースの IDE はソフトウェア開発分野における比較的最近の技術革新です。 これらには 2 つの固有の利点があります。 互換性のあるブラウザー以外のローカル設定は必要なく、また、設計されていれば、複数の開発者による編集を可能にすることができます。 一方、クラウドベースのIDEは遅延に悩まされることが多く、開発者をイライラさせ、コーダーの生産性を最も高める「フロー」を妨害することがあります。 現在、3つのクラウドベースのIDEがGo言語をサポートしています。

Cloud9 は多言語のクラウドベース IDE で、すぐに Go をサポートします。 GitHub、Bitbucket、および Google Cloud Platform のリポジトリに接続し、共有とクローンが可能なワークスペースを備えています。 豊富な機能を持つコードエディターとオンラインファイルシステムに加え、MySQLなどのデータベース、ターミナルや即時ウィンドウ、カスタマイズ可能なキーボードバインディングを備え、Vim、Emacs、Sublime Textモードが標準装備されています。 Go 用の自動補完とデバッグはまだ実験的ですが、構文強調表示、実行パネル、アウトライン ビュー、および linting はすべて完全にサポートされています。

CodeEnv は、多言語のクラウド ベース IDE です。 プライベート環境用のGoベース環境イメージと、パブリックなGo環境イメージが用意されています。 各環境は、ファイルシステム、シンタックスハイライトを備えたシンプルなコードエディタ、ターミナルウィンドウで構成されています。

Wide は、Go プログラミング言語で書かれた、チームのための Web ベースの IDE です。 CodeMirror ベースのテーマ別プログラミング エディターを使用し、gocode による構文の強調表示、自動補完、コード フォーマット、およびリアルタイムの共同作業を行います。 Wide は依存関係にあるものとして LiteIDE を挙げています。

Gogland

JetBrains Gogland は現在初期のプレビュー状態ですが、まだ商業的にリリースされていないものの、利用できる最も完全な Go IDE であるように思われます。

下のスクリーンショットでは、Go 言語プロジェクトのソース コードを調査するために Gogland を使用していますが、プロジェクト ツリー、検査ヒント (電球)、終了点の強調表示、右側のナビゲーション バーを使ったクイック ブラウジング (行番号が順番になっていないコードのボックス) など、いくつかの Gogland 編集機能を見てとることができます。 Gogland でできることを示すより多くのスクリーンショットについては、JetBrains の機能ガイドを参照してください。

InfoWorld

Gogland は IntelliJ IDEA および WebStorm と同じ JetBrains プラグイン システムを使っており、すでにそれらの製品から引き継いだ多くの関連機能を搭載しています。 たとえば、WebStormとまったく同じように、HTMLやフロントエンドの言語やフレームワークで作業するためにGoglandを使用することができます。 また、GoglandはIntelliJ IDEAやDataGripのように、SQLデータベースを扱うことができます。

Visual Studio Code

Visual Studio Code と vscode-go プラグインは、よく機能するすばらしい Go エディターであり、Git とうまく統合されています。 Visual Studio Code は、少なくとも毎月更新と再起動が必要ですが、編集中に遅いと感じることはほとんどありません。 In the screenshot below we see the explorer on the left, Go tools installation at the bottom right, and code editing at the top right.

InfoWorld

The Go tools enable the vscode-go plugin, which supplies many editing and code checking features. These include completion lists (using gocode), signature help (using gogetdoc or godef plus godoc), snippets, quick info (using gogetdoc or godef plus godoc), go to definition (using gogetdoc or godef plus godoc), find references (using guru), file outline (using go-outline), workspace symbol search (using go-symbols), rename (using gorename), build-on-save(go buildgo test を使用)、 lint-on-save(golintgometalintergoreturnsgoimportsgofmtgotestsgopkgsdelve を使用)です。

これは、Gogland IDE で得られるほどではないにせよ、便利な機能の全体像です。 vscode-go の readme ファイルにあるスクリーンキャストは、ほとんどの機能がどのように動作するかを示す良い仕事です。

Cloud9

Go をサポートする 3 つのクラウド IDE のうち、現在最も興味深いのは Cloud9 です。 3 つのうち最も機能的なプログラミング エディターを備え、Go に加えて約 17 言語をサポートしています。 Go 言語のコード補完は実験的とされていますが、かなりうまく機能し、入力の遅れはあまり生じませんでした。

InfoWorld

Cloud9 の Ace Editor は現在 100 以上のプログラミング言語について構文強調表示をサポートしています。 上記の 17 という数字は、コードの実行、リント、アウトライン化、コード補完、デバッグなど、他のサポートもある言語です。

現在、Cloud9 のワークスペースは Ubuntu 14.04 と Go 1.7.3 を実行しています。 Bash シェル (スクリーンショットの下部を参照) から Go インストールを更新したり、Bash から Go や他のプログラムを実行したりできます。

これまで見てきたように、Go 開発のためのプログラミング環境は多くの選択肢があります。

見てきたように、Go 開発のためのプログラミング環境には多くの選択肢があります。私は、フル機能の Go IDE として Gogland、最高の Go エディターとして vscode-go 付き Visual Studio Code、そして私にとって最高の Go クラウド IDE として Cloud9 を選びましたが、他にも 30 以上の可能性があります。 ソフトウェア開発環境の選択がいかに個人的なものであるかを考えると、いくつか試してみて、自分のニーズと好みに最も合うものがどれかを確認すべきです。

コメントを残す

メールアドレスが公開されることはありません。