Goの流れにのってみる

巷ではGoやらSPDYやらAndroidやらGoogleの勢いがまた強くなってきた感じがしますね。自分はプログラムする人じゃ無いんですが、流行にのってGoを入れてみました。

環境:Mac OS X 10.5.8

インストール

まんま本家と他家さんを参照。
http://golang.org/doc/install.html
http://d.hatena.ne.jp/amachang/20091111/1257928890

上のページと違うのは環境変数の設定を$HOME/.bash_profileに書き出したのとexport GOARCH=386としたことぐらい。自分のマシンは32bitOSなので。。。っていう理解でいんですよね?本家に書いてあるこれ。(自信なし)

There are important differences in the quality of the compilers for the different architectures.

amd64 (a.k.a. x86-64); 6g,6l,6c,6a
The most mature implementation. The compiler has an effective optimizer (registerizer) and generates good code (although gccgo can do noticeably better sometimes).
386 (a.k.a. x86 or x86-32); 8g,8l,8c,8a
Comparable to the amd64 port. Not as well soaked but should be nearly as solid.
arm (a.k.a. ARM); 5g,5l,5c,5a
It's got a couple of outstanding bugs but is improving. Tested against QEMU and an android phone.

あとついでなので.bash_profileの中身。

# For Go
export GOROOT=$HOME/go
export GOBIN=$HOME/bin
export GOARCH=386
export GOOS=darwin
export PATH=$GOBIN:$PATH

もろもろやって、$./all.bashを実行後、無事以下のメッセージが

--- cd ../test
0 known bugs; 0 unexpected bugs

おーちょっと感動

せっかくなのでHello World

公式に記載の"A complete example:"をそのまま試してみる。

■ソース(hello.go)
package main

import "fmt"

func main() {
	fmt.Printf("hello, world\n")
}
■コンパイル〜実行
$ls
hello.go
$8g hello.go
$ls
hello.8 hello.go
$8l hello.8
$ls
8.out hello.8 hello.go
$./8.out
hello, world

動いた。以上。

備忘録の関連記事

■プログラミング言語Goの第一印象
戻り値が複数返せるってのはいいですね。C言語ってよりPascalの記法に近いって言うのも確かにーという感じ。
■なんか Go で書くのが流行ってるみたいなので
KVSもどきのプログラムだそうで。あとでゆっくり読んでみよう
■Go のサンプルいくつか
プログラマーって仕事がはやいっすねぇ。尊敬


ひとまず満足。でもほかの人がやってることみるともっと色々やってみたくなります。