Go言語(golang)のgetでエラーになる
はじめに
PHPに続き、Androidネイティブアプリを開発できるというGo言語(golang)の勉強をはじめました。
プログラミング言語「Go 1.4」がリリース、Androidを正式にサポート:CodeZine
golang - go.mobileを動かしてみた。 - Qiita
Go言語では、Rubyのgemコマンドに相当するgetコマンドで、サードパーティのライブラリを取り込んで機能拡張していくんですが、ここでエラーになり先に進めなくなりました。
本当に入り口でつまづいたわけですが、ネット上でもGo言語の情報はまだ少なく、解決に手間取ってしまいました。
超基本的な問題でも、情報が少ないと苦労する事があるよ、というのが今回のお話。
結論
・GOPATHの設定が必要
・Gitは別途インストールが必要
・proxy経由ではhttp_proxy設定が必要
経緯
Go(golang)はGoogleが開発したプログラミング言語で、Javaなどのコンパイラ言語ならではの高速性と、RubyやPythonなどのスクリプト言語のような柔軟さを兼ね備えています。
面白そうなのでちょっとチャレンジしてみたんですが、Go本体には基本的な機能しか備わっていないので、本格的に使いこなすにはgetコマンドでサードパーティーのライブラリを入れてやる必要があります。
今回はこのgetコマンドで以下のエラーが発生!
cannot download, $GOPATH not set
すわ一体何ぞやと調べてみると、環境変数にGOPATHを設定する必要があるらしい。
どうやらライブラリのインストールパスになるようで、指定されていれば場所はどこであろうと問題ない模様。
というわけで、GOPATHを適当な場所に設定して続行したところ、今度は以下のエラーが発生!
"git": executable file not found in $PATH
エラーの内容から一目瞭然ですが、Gitは別途インストールする必要があるようです。
Go getのためには、各種バージョン管理ツールが必要 - Bye Bye Moore
で、Gitをインストールしてgetコマンドを実行!
「無事完了、めでたしめでたし」と思いきや、今度は以下のエラーが発生!
error: Couldn't resolve host 'github.com' while accessing https://github.com/hoge/hoge
fatal: HTTP request failed
package github.com/hoge/hoge: exit status 128
プロキシ経由の場合は、環境変数にhttp_proxyを設定する必要があるらしい。
go get でプロキシを突破するには #golang - memoメモ
この辺はRubyのgemコマンドでも同様だったので、あまり悩まなかった。
確実に進歩してるね!俺!
[補足]プロキシ経由でのインストールをさらにいろんな言語で試してみた。
というわけで、ようやくgetコマンドでライブラリをインストールできました。めでたしめでたし。
まとめ
Goを使ってみた感想として、一見するとPythonに非常に近いのですが、型指定の誤りや未使用の変数が実行前にコンパイルエラーとして検出されるなど、Javaのような堅牢さも併せ持っていて、結構実用性が高そうです。
私はWindows環境で使ってみたんですが、作成したプログラムのEXE化も非常に簡単で、様々なPCに持ち運んで使うツールの作成にも便利かもしれません。
現時点での採用事例も意外と多く、有名どころではGunosyなんかで使われているようです。
採用事例で学ぶGoLangの使いドコロ::Innova TechBlog
これで本格的なAndroidネイティブアプリの開発が可能になれば、相当なシェアを獲得するかもしれませんね。