利用しているフリーランスエージェントの担当者に
「Go言語は歴史が浅いので、Web開発経験があれば高単価で参加できる案件結構ありますよ」
と言われたので、とりあえず触ってみることに。
Go言語(golang)とは何か
Googleによって2009年に開発されたプログラミング言語です。天下のGoogle様によって提供されているというだけで謎の安心感がありますね。
特徴としては
- シンプル
- 実行・コンパイルが早い
- 標準ライブラリが充実している
といった感じ。まだガッツリ触れていないので体感はできていませんが、エンジニアの技術に左右されず、安定したクオリティの開発が可能な言語といった感じです。
若い言語であるということは、経験の長いエンジニアが存在しないということです。つまりある程度の開発経験があれば、プロジェクトに参加しやすいとなるわけで、学習のコスパはかなりいいんじゃないかと。
何はともあれ開発環境を構築しようということで、Linux環境にGo言語をインストールしていきます。
ちなみに僕はVirtualBoxで作成した仮想環境に、Ubuntu系統のmintというディストリビューションに構築を行いました。ですが今回の方法はディストリビューションを問わず実施可能な手順となっておりますので、是非参考にしてみてください。
LinuxにGo言語をインストール
今回は公式から直接バイナリファイルをダウンロードしてきます。
ちなみにapt-getやyumで単純にインストールしようとすると古いバージョンがインストールされる場合があるので、最新版が欲しい場合はしっかり確認しておきましょう。
他にはgvmというRubyで言うとrbenvのようなバージョン管理ツールもあるようですが、そちらを使ったインストールについてはまたの機会に。
基本的には公式のインストールガイドに沿って行っていきます。
公式からダウンロード
ホームディレクトリなどにファイルをダウンロードします。
~ $ wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
公式のダウンロードページを確認してみると、この記事を書いている2017/8時点では1.8.3が最新ですので、指定してダウンロードします。
ダウンロードしたファイルの解凍
/usr/localディレクトリにダウンロードしたファイルを解凍します。
~ $ tar -C /usr/local -xzf ~/go1.8.3.linux-amd64.tar.gz
パスの設定
次にGoコマンドなどが使用できるよう、ユーザーの設定ファイルにGo言語のパスを設定します。
私の環境の場合~/.bashrcの末尾に以下の記載を追加しました。
# golang export PATH=$PATH:/usr/local/go/bin
設定を保存したら以下のコマンドで変更を適用させましょう。
~ $ source ~/.bashrc
ネットに公開されている構築方法によってはGOPATH(作業ディレクトリ)を設定している場合がありますが、go envコマンドを実行してみると標準でユーザーディレクトリ配下のgoディレクトリに設定されていることが確認できますので、変更したいという場合以外は設定不要です。
インストールの確認
以下のコマンドでインストールしたGoのバージョンを確認できれば、無事インストールが完了したことになります。
~ $ go version go version go1.8.3 linux/amd64
補足①:パスの変更
今回は特に必要ありませんでしたが、インストール場所については自分で指定した場所に変更することが可能です。
その際は以下のように追加でGOROOTについての記載を行ってください。
export GOROOT=$HOME/go1.X export PATH=$PATH:$GOROOT/bin
補足②:ディストリビューション固有のパッケージ管理コマンドを使用しなかった理由
Ubuntuなどのディストリビューションであれば下記のコマンドでインストールできるバージョンを確認することができます。
apt-cache showpkg golang
このコマンドの実施結果を確認したところ、1.6しかインストールできない模様でしたので、今回はバイナリからの直接インストールを選択しました。
テストソースの作成
実際にコマンド上で動く簡単なプログラムを作成してみます。
Goファイルの作成
まずは標準で設定されている作業ディレクトリの下にgoファイルを作成します。
~ $ mkdir go ~/go $ cd go/ ~/go $ mkdir src/ ~/go $ cd src/ ~/go/src $ mkdir hello ~/go/src $ cd hello/ ~/go/src/hello $ touch hello.go
hello.goの内容は以下の通り。Hello Worldをコマンド上に表示する処理です。
package main import "fmt" func main() { fmt.Printf("hello, world\n") }
ビルド&実行
作成したGoファイルをビルドします。
~/go/src/hello $ go build
ビルドが完了すると、同ディレクトリにhelloというファイルが作成されますので、そちらを実行します。
~/go/src/hello $ ./hello
hello, worldと表示されれば無事動作確認完了です。
まとめ:思ったよりサクッと開発環境が作れた
思ったよりもシンプルな手順でインストールが完了しました。
経験の浅いエンジニアでも、第一線で活躍する可能性を持つことのできるGo言語。簡単なプログラムを作成して、githubなどにアップするだけでも企業に向けてのアピールポイントとして活用できるでしょう。
僕はひとまずWebフレームワークなどを使用して雰囲気をつかんでみようかと思います。
余談となりますが、冒頭でお話したエージェントについては以下の記事で詳しく書いています。興味があったら合わせて読んでみてください。
https://tisnote.com/geechs-free/
閲覧いただき、ありがとうございました。