2018年5月現在、Go言語用開発環境(IDE/エディタ)について比較してまとめた。
忙しい人向けのまとめ
- どのIDE/エディタでも設定すればできることはそんなに変わらない。
- なので使い慣れもの/好きなものを使えば良い。
- Go言語では**「保存時の挙動」でコードの書き方や意識が変わるので、どのようなことができるか知って、調整するのがおすすめ**。
比較対象のIDE/エディタ
Atom (無料)
go-plus
プラグインを入れることで、シンタックスハイライトや自動フォーマット/自動テスト、カバレッジの表示などに対応。特に設定をしなくても、デフォルトの状態でこれらの機能が動くようになるので、非常に取っつきやすい。
参考: 【はじめてのGo言語】Go言語でアプリケーションを作ってみよう 〜こんにちは、世界編〜
Visual Studio Code (無料)
Microsoft製のvscode-goプラグインを入れる。基本的な機能や使い方はAtomにgo-plus
を入れた場合とほとんど同じ。プラグインの更新や必要なツールのインストールの案内が充実していて親切。
参考: Visual Studio CodeによるGo言語のデバッグ
GoLand(JetBrains) (有料 無料ライセンスもあり)
他のJetBrains製IDEと同等の操作性・安定性があり、IDEとしての機能は非常に強力。ビルド/デバッグ時に渡す引数を設定しておけるなど、一旦その便利さに慣れると手放せなくなる「痒いところに手が届く」感がある。
ただし、高機能故GUIが複雑で設定項目も多く複雑なので、はじめは多少取っつきにくい。Android StudioなどでJetBrains系IDEに慣れている人だったら、スムーズに使えると思う。
機能比較
エディタとしての機能
項目 | Atom | VSCode | GoLand |
---|---|---|---|
シンタックスハイライト | ○ | ○ | ○ |
ビルドエラー表示 | ○ | ○ | ○ |
カバレッジ表示 | ○ | ○ | ○ |
リネーム | ○ | ○ | ○ |
定義ジャンプ | ○ | ○ | ○ |
これらの基本的な機能はgofmt
やgoimport
などGo言語側で用意されているため、全てのIDE/エディタでほぼ同様にサポートされている。「見せ方」はIDE/エディタによって多少異なるが、機能面での大きな違いはない。
ファイル保存時の挙動
項目 | Atom | VSCode | GoLand |
---|---|---|---|
Lint | ※1 | ○ | 設定すれば可能 |
フォーマット | ○ | ○ | 設定すれば可能 |
Import整理 | ○ | ○ | 設定すれば可能 |
テスト実行 | ○ | 設定すれば可能 | 設定すれば可能 |
※1...linter
パッケージをインストールしている場合のみ
デフォルトの状態での、ファイル保存時の挙動はIDE/エディタによって異なっている。Atomはファイル保存時に自動でフォーマットからテストまで実行するのに対して、GoLandでは基本的に明示的にコマンドを実行したり、設定を有効にしない限り「余計なことはしない」挙動をする。Visual Studio Codeは、フォーマットやLintはデフォルトでオンになっているが、テストはデフォルトではオフになっている。
Go言語の書き方、意識はファイル保存時の挙動によって大きく変わると思う。
保存時に毎回テストが走り、エディタ上でカバレッジが強調される環境では、テストを書く意識が強く働くようになるし、強めのLintが走る環境では「良い(とされる)書き方で書くこと」に意識が働きやすくなる。フォーマットやImportの整理も保存時に自動で行われる環境では、インデント調整などの非生産的な作業はツールに任せて自分の手ではやらないようにする、という意識が働く。なので、ここの挙動は非常に重要なポイントであると思う。
Go言語はビルド/実行スピードの速さが売りの一つなので、他の言語に比べて保存毎にこれらの処理を自動で行うような開発スタイルを採用しやすい。とはいえ、大きなプロジェクトになってくると毎回テストを走らせていると重くてストレスになってきて、逆に生産性を下げてしまったりもするので、一概にどの設定が最適化を決めることはできない。
これらの挙動は、基本的に設定さえすればどのIDE/エディタでも大体同じような挙動に調整できるが、慣れていないと設定がわかりにくかったりする。
参考: Visual Studio Code On Save features
考察・結論
最終的には設定さえしてしまえば、基本的にはできることはあまり変わらないのだが、設定で躓くのはあまり楽しい体験ではない。AtomやVSCodeは気軽にいつでも無料で使えるので、まずは両方試してみたらいい。肝は上述の通り「保存時の挙動」だと思うので、それによる影響を体験したら、あとは好みのエディタの方で頑張って「良い」と思う挙動に設定すれば良い。
その上で、物足りない / さらに細かいことをやってみたいと感じたらGoLandの無料トライアルを試せば良いのではないかと思う。