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

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

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

この記事では、利用可能なすべてのGo-aware編集環境を調べて、価値があると思われる環境に焦点を当てようとしました。私はGo用のIDEとプラグインの公式リストから始めて、リストにあるおよそ35のアイテムを試してみる価値のあるものまで選別しました。まず、各カテゴリで見つけた便利な製品の簡単なまとめから始めて、最後に私のおすすめの商品を詳しく見ていきます。

Go言語開発は通常、Go開発ワークスペースのルートに設定されたGOPATH変数に依存していることに注意してください。これは、環境設定を常に尊重するとは限らないエディターなどのGUIアプリケーションにとって問題になる可能性があります。

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

IDEに移行

GoをサポートするIDEは驚くほどたくさんあります。ただし、「サポート」の意味は異なります。ゴーグラント、Goclipseを使用したEclipse、LiteIDE、KomodoIDEの4つのIDEが目立ちました。

ハイエンドでは、JetBrainsのGoglandは、スマートコンプリーション、検査とクイックフィックス、シンプルなリファクタリング、クイックナビゲーション、クイックポップアップ、いくつかの非常に基本的なコード生成、再帰的な呼び出し検出、式タイプのポップアップ、出口点の強調表示、使用状況の検索、コードのフォーマットセマンティックハイライト、およびエディター内のパラメーターヒント。はい、それは若い言語を編集するための多くの機能です。その他のGogland機能には、統合デバッガー、カバレッジ分析、テスト実行、Goツールを実行するためのメニュー、およびIntelliJIDEAなどの他のJetBrains製品にあるものと同様のGo固有ではない機能が含まれます。 Goglandは、システムのGOPATH環境だけに依存するのではなく、複数のGOPATH設定を管理できます。

ゴーグラントは現在、早期アクセス製品として無料で入手できます。最終的には、他のJetBrains製品と同じ価格になる可能性があります。年間サブスクリプションで、それ自体で、またはJetBrainsの他のツールとバンドルして、学者やオープンソースの貢献者に割引を提供して利用できるようになることを期待してください。

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

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

Komodo IDEは、Go構文チェック(リンティング)と強調表示、構文の色付け、コード折り畳み、およびその他の生産性向上機能をサポートしています。Komodoは、補完、呼び出しのヒント、アウトライン、および定義への移行を備えたGoコードインテリジェンスもサポートしています。リファクタリングには、変数とクラスメンバーの名前の変更、およびメソッドの抽出が含まれます。Komodoは、Goユニットテスト、コードコラボレーション、バージョン管理、インタラクティブシェル、およびコードプロファイリングをサポートしています。Komodoの名声の主な主張は、Python、Node.js、Ruby、Go、Perl、Tclを含むすべての主要なオープンソース言語をサポートしていることです。

KomodoIDEは商用製品です。IDEの機能のサブセットを備えたKomodoEditorは無料です。

編集者に行く

IDEは、コードの開発に必要なすべての機能を提供する場合がありますが、IDEはしばしば「重い」と感じることがあります。つまり、起動に時間がかかり、大量のメモリを使用し、バックグラウンドでの処理が多すぎるためにコードを入力すると応答しなくなることがあります。コンパイルのために別のコマンドラインシェルウィンドウに切り替える必要がない限り、特に短いセッションでは、コードエディタが望ましい場合があります。

プラグインは、IDEのような機能をコードエディタに追加できる場合があります。プラグインを最新の状態に保つための定期的なオーバーヘッドと、バックグラウンドでプロセスを実行しているプラ​​グインの一定のオーバーヘッドが編集の速度を低下させない限り、これは通常は問題ありません。

Atom、Brackets、および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が含まれます。Go-Syntax。構文の強調表示にCodeMirrorを使用します。gofmtコードのフォーマットとgoimportsインポートの管理に使用する改良型GoFormatter 。

Visual Studio Codeは、すぐに使用できるGo構文の強調表示をサポートしています。追加機能は、12を超える標準のGoツールと統合するvscode-goプラグインによって提供されます。GOPATHが設定されていない場合、プラグインはGo言語ファイルを編集しようとするとすぐに設定するように要求します。プロジェクトやシステム環境に合わせて設定できます。Goツールがインストールされていない場合、プラグインは、GOPATHによって決定された標準の場所にツールをインストールするように要求します。

クラウドベースのGoIDE

クラウドベースのIDEは、ソフトウェア開発分野における比較的最近のイノベーションです。これらには2つの固有の利点があります。互換性のあるブラウザ以外にローカルセットアップを必要としないことと、そのために設計されている場合は複数の開発者が編集できることです。欠点として、クラウドベースのIDEはラグに悩まされることが多く、開発者を苛立たせ、コーダーの生産性を高める「フロー」を妨げる可能性があります。現在、3つのクラウドベースのIDEがGo言語をサポートしています:Cloud9、CodeEnv、Wide。

Cloud9は、すぐに使用できるGoをサポートする多言語のクラウドベースのIDEです。 GitHub、Bitbucket、Google Cloud Platformリポジトリに接続し、共有および複製できるワークスペースを備えています。豊富な機能セットとオンラインファイルシステムを備えたコードエディタに加えて、MySQLおよびその他のデータベース、ターミナルウィンドウとイミディエイトウィンドウ、カスタマイズ可能なキーボードバインディングがあり、Vim、Emacs、およびSublimeTextモードが標準で提供されています。 Goのオートコンプリートとデバッグはまだ実験段階ですが、構文の強調表示、実行パネル、アウトラインビュー、およびリンティングはすべて完全にサポートされています。

CodeEnvは、多言語のクラウドベースのIDEでもあります。プライベート環境用のGoベース環境イメージと、パブリックGo環境イメージがあります。各環境は、ファイルシステム、構文が強調表示された単純なコードエディタ、およびターミナルウィンドウで構成されています。現在、ベースイメージには8つの選択肢があり、バックエンドイメージには6つの選択肢があります。

Wideは、Goプログラミング言語で記述されたチーム向けのWebベースのIDEです。これは、Gocodeを利用した構文の強調表示、オートコンプリート、コードの書式設定、およびリアルタイムのコラボレーションを備えたCodeMirrorベースのテーマプログラミングエディターを使用します。WideはLiteIDEを依存関係として引用しています。

ゴーグラント

JetBrains Goglandは、現在初期プレビュー状態にあり、まだ商業的にリリースされていませんが、利用可能な最も完全なGoIDEのようです。その統合されたデバッガー、カバレッジ分析、およびテスト実行は、いくつかのツール統合を備えた一般的なエディターとの区別に大いに役立ちます。

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

Goglandは、IntelliJ IDEAおよびWebStormと同じJetBrainsプラグインエコシステムを使用しており、これらの製品から継承された多くの関連機能がすでに含まれています。たとえば、WebStormとまったく同じように、Goglandを使用してHTMLおよびフロントエンドの言語とフレームワークを操作できます。Goglandでは、IntelliJIDEAやDataGripなどのSQLデータベースを操作することもできます。Node.jsサポートをGoコーディングと組み合わせる必要がある場合、またはGit統合に加えてSubversionサポートが必要な場合は、プラグインを追加するだけです。

VisualStudioコード

vscode-goプラグインを備えたVisualStudio Codeは、うまく機能し、Gitとの統合が良好な優れたGoエディターです。 Visual Studio Codeは、少なくとも毎月更新と再起動が必要ですが、編集中に遅く感じることはめったにありません。下のスクリーンショットでは、左側にエクスプローラー、右下にGoツールのインストール、右上にコード編集が表示されています。

Goツールは、多くの編集およびコードチェック機能を提供するvscode-goプラグインを有効にします。これらには、補完リスト(using gocode)、署名ヘルプ(usinggogetdocまたはgodefplus godoc)、スニペット、クイック情報(usinggogetdocまたはgodefplus godoc)、定義への移動(usinggogetdocまたはgodefplus godoc)、参照の検索(using guru)、ファイルアウトライン(using go-outline)、ワークスペースシンボル検索が含まれます。 (using go-symbols)、rename(using gorename)、build-on-save(using go buildand go test)、lint-on-save(using golintor gometalinter)、format(using goreturnsor goimportsor gofmt)、ユニットテストスケルトンの生成(using gotests)、add imports(using gopkgs)、部分的に実装されたデバッグ(delve)。

これは、Gogland IDEで得られるほどではありませんが、非常に多くの便利な機能です。vscode-go readmeファイルのスクリーンキャストは、ほとんどの機能がどのように機能するかを示すのに役立ちます。

クラウド9

Goをサポートする3つのクラウドIDEの中で、現在最も興味深いのはCloud9のようです。3つの中で最も機能的なプログラミングエディタを備えており、Goに加えて約17の言語をサポートしています。Go言語コードの完成は実験的なものとしてマークされていますが、かなりうまく機能し、入力の遅延をあまり引き起こさなかったことがわかりました。

Cloud9のAceエディターは現在、100を超えるプログラミング言語の構文強調表示をサポートしています。上記の番号17は、コードの実行、リンティング、アウトライン、コードの完了、デバッグなど、他のサポートもある言語用です。

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

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