PythonもC++も知らないがGoさわってみた

巷で既に噂になっているGoogleが発表した新言語「Go」。なんでもPythonとC、C++の良いとこ取りとか言われているみたいだけどPythonもC、C++も知らないけど面白そうなんでさわってみた。

インストール

忘れないようにメモっとく。多少苦労したかな、環境は下記の通り。

アプリ バージョン
Ubuntu Linux 9.04
gcc 4.3.3

ホストOSとしてWindowsXPの上にVMPlayerで上記環境を構築してある。更に手っ取り早く環境を作りたかったので、イメージはVMPlanet(http://www.vmplanet.net/)から落としてきた。

参考として、The Go Programming Language(http://golang.org/)を見るのは当然だよね。

最初に、ホームディレクトリの「.profile」を編集。私の場合は「.profile」、「.bashrc」や他のシェルであればそれに見合ったものを編集する。

export GOROOT=$HOME/go
export GOOS=linux
export GOARCH=386
export GOBIN=$HOME/bin
export PATH=$GOBIN:$PATH

次に、インストールする際に「mercurial」ってアプリを利用した方がインストールしやすいって事なんで、「mercurial」をインストール。ちなみに「Mercurial(マーキュリアル)」っていうらしい、バージョン管理システムPythonで実装されているみたい。詳細はWikihttp://ja.wikipedia.org/wiki/Mercurial

$ sudo apt-get install mercurial
$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT

$ cd $GOROOT/src
$ ./all.bash

ちなみに、先に「$HOME/go」ディレクトリを作っておくと「hg」を実行した際に、既に「$HOME/go」ディレクトリが存在するって警告が出て怒られた。

「./all.bash」でインストール開始。なんだけど、今度は「$HOME/bin」ディレクトリが存在しないって怒られた。

$ mkdir bin

$ cd $GOROOT/src
$ ./all.bash

再度インストール実施。したらエラーが出た。

%%%% making cc %%%%

bison -y -d cc.y
make: bison: Command not found
make: *** [y.tab.h] Error 127

「bison」ってコマンドが存在しないって事ですね。「bison(バイソン)」は構文解析器の一種との事。詳細はWikihttp://ja.wikipedia.org/wiki/Bison)、「bison」をインストールする。

$ sudo apt-get install bison
$ ./all.bash

「apt-get」ってめっちゃらくだよね。何も考えずにインストールできるから、良い時代だ。で再度挑戦。

だいたい10分後に「go」のインストール終了なんだけど、エラーが出た。

make[1]: *** [test] Error 133
make[1]: Leaving directory `/home/vmplanet/go/src/pkg/net'
make: *** [net.test] Error 2

ん〜ネットワーク関連がダメなのかな?そのテストで落っこちたって事?まあ、VMPlayer上だからネットワーク関連は多少仕方のないことなのかな、一様ビルドできたみたいだし、たぶん問題ないだろう。

って事で早速コーディングから実行。

$ vi hello.go

package main

import "fmt"

func main() {
    fmt.Printf("hello, world\n")
}

$ 8g hello.go
$ 8l hello.8
$ ./8.out
hello, world
$

わお、感動ですね。ちなみに「386」系は「8*」を利用するみたい。さて、この言語「Go」の未来は明るいのかそれとも・・・暖かく見守っていければいいと思います。得意分野があればいいね。WEBだとか組み込みだとか特化するところがあれば何とかなるんでないの?

ちょっと将来が楽しみな言語ですね。