突撃!隣のREALITYエンジニアのGo言語用開発環境 Now In REALITY Tech #121
どうも。ドッグトレーナー兼ラーメン評論家で、さらにはサーバエンジニアなどもやっているナオヤです。最近、こっそりとREALITYで配信を始めましたので、発見してみてください。
突然ですが!エンジニアがコードを効率的に書くためのIDE(統合開発環境)/エディタは、Android開発ならAndroid Studio、iOSならXcodeしか選択肢がほぼ無いと思うのですが、サーバサイド開発においては言語も様々ですし、結構自由度が高いですよね。
皆さんが御存知の通り?REALITYのサーバサイドの主な開発言語はGo言語になります。自分も含め、各々好みのGo言語用開発環境で開発を行っているのですが、チーム内の他のエンジニアのGo言語の開発環境がちょっと気になっていました。今回はチームのエンジニアがどんな環境で開発しているのか、自分が導入していない開発環境について少し調べてみようと思います。
ということで、突撃!隣のREALITYエンジニアのGo言語用開発環境ということで、突撃していきます。
Go言語の開発環境の選択肢
2024年8月現在、Go言語の開発環境としては主にどんなものがあるか調べてみました。以下の3種類くらいがメジャーなようです。
JetBrains GoLand
Visual Studio Code + Go For VS Code
Vim/Neovim + Go言語プラグイン
上から1個ずつ軽く説明したいと思います。
JetBrains GoLand
JetBrains社のGo言語用のIDEです。他の言語や環境でJetBrains社のIDEを使い慣れている方はこちらを利用することもあるのではないでしょうか。自分もAndroid StudioやPhpStorm、Rider等で使い慣れているUIなので、こちらを使用しています。
使用するにはライセンス費用が掛かります。
Visual Studio Code + Go For VS Code
Visual Studio Code自体はMicrosoft社が開発している軽量なコードエディタになります。そのVisual Studio Codeに、Google社のGo開発プロジェクトが主導で開発を行っているGo言語開発用の拡張プラグイン「Go for VS Code」を入れて開発する人が多いようです。
Vim/Neovim + Go言語プラグイン
VimとはUnix系のOSには標準搭載されていることが多いオープンソース高機能テキストエディタです。NeovimはVimから派生して出来たようです。
Vim/Neovimでvim-goというGo言語用のプラグインを入れるのが主流のようです。
その他の選択肢
数年前までは、Github社が開発していたオープソースのテキストエディタAtomとGo言語プラグインの組み合わせも使われていたようですが、Github社がMicrosoft社に買収されてからAtomの開発が終了してしまい、メジャーな手法ではなくなったようです。
REALITYエンジニアにアンケート取ってみた
それではREALITYでサーバサイドの開発を行いっているエンジニアにアンケートを取った結果を早速ですが公開したいと思います。
結果発表!
使用率1位は Visual Studio Code + Go For VS Code でした。これは意外な結果なのかどうかはわかっていませんw
ただ、JetBrainsのGoLandに関してはライセンス費用が掛かるので、世間一般と比べると割合が高いということはあるかもですね。REALITY社でライセンスを購入して貰えるので、使用のハードルが低いというのはあるかもしれません。
最近のナウでヤングな開発小話
ちょっと前からREALITY社では、エンジニア全員がGitHub Copilotを使えるようになっているのですが、これのコード補完機能が便利過ぎて、無い時に戻れない自分です。
調べてみると、どのGo言語の開発環境を選んでもライセンスさえあれば、GitHub Copilotの使用は可能なようですね。
GoLandを使っていると、Visual Studio Code で書かれたコードに対して importを足すと、 importの順番が入れ替わって、差分が出ることがあり、そこだけは気になっていました。
ですがつい先週、ソートタイプを goimports にするとVisual Studio Codeとの差分が出なくなるので、REALITYエンジニアで GoLand 使用者の間ではこの設定をするようなルールとなり、この不便は解消されましたw
最後に
実は自分、Visual Studio Codeでも開発してみたこともあるのですが、どうもしっくりこなくて、GoLandに戻ってきました。やはり使い慣れ親しんでいるUIが良いようです。今のところ、不便なことも無いので、今後も引き続き使っていくと思います。
今回は、それぞれの開発環境にしか無い良さまでは調べることが出来ませんでしたが、これが便利だ!というのがあれば、ぜひぜひ教えてください。
あ、最後の最後におまけです。やはり二郎系強し!