読者です 読者をやめる 読者になる 読者になる

Go言語(golang)のgetでエラーになる

golang プログラミング

基礎からわかる Go言語

はじめに

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などのコンパイラ言語ならではの高速性と、RubyPythonなどのスクリプト言語のような柔軟さを兼ね備えています。

Go (プログラミング言語) - Wikipedia

 

面白そうなのでちょっとチャレンジしてみたんですが、Go本体には基本的な機能しか備わっていないので、本格的に使いこなすにはgetコマンドでサードパーティーのライブラリを入れてやる必要があります。

 

今回はこのgetコマンドで以下のエラーが発生!

cannot download, $GOPATH not set

 

すわ一体何ぞやと調べてみると、環境変数にGOPATHを設定する必要があるらしい。

どうやらライブラリのインストールパスになるようで、指定されていれば場所はどこであろうと問題ない模様。

GOPATH は適当に決めて問題ない - Qiita

 

というわけで、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ネイティブアプリの開発が可能になれば、相当なシェアを獲得するかもしれませんね。