プログラミング言語GoをMacに入れてみる

Googleから新しいプログラミング言語Go (golang) がリリースされた
The Go Programming Language
LinuxMac OS Xx86, x86-64, armがサポート対象 (OS X / armは、まだ)


20%プロジェクトとして開発がスタートし、Rob PikeやKen Thompsonも関わってるみたい
(追記) リンクいくつか追加した
グーグル、オープンソースのプログラミング言語「Go」を発表 - CNET Japan
http://journal.mycom.co.jp/news/2009/11/11/025/index.html
Googleの新しいプログラミング言語Go == Python(開発が速い) + C++(実行速度が速い) | TechCrunch Japan
Google、オープンソースのプログラミング言語「Go」リリース - ITmedia エンタープライズ
グーグル、C/C++に代わる新言語「Go」をOSSで公開 − @IT
グーグルの新プログラミング言語「Go」--精鋭チームが切り開く新たな可能性 - CNET Japan
Googleの実験、新しい言語Go
と、言うわけで早速Macにインストールしてみる

  • 準備

ソースコードからビルドしないとダメみたい。ソースコード管理にはMercurialが使用されているので、まずはMacPortsMercurialをインストール

$ sudo port install mercurial

Goで使う環境変数を.bash_profileに追加
.bash_profile (Mac OS X / 32bitの場合)

export GOROOT=$HOME/go
export GOOS=darwin
export GOARCH=386

(64bitの場合はamd64を指定)
変更した内容を反映

$ source .bash_profile
  • ソースを持ってくる

Mercurialのhgコマンドを使ってリポジトリをコピー

$ hg clone -r release https://go.googlecode.com/hg/ $GOROOT
  • インストール

ソースをビルドしてインストール (コマンドは$HOME/binにインストールされる)

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

正常に終了すると次のように表示される

--- cd ../test
0 known bugs; 0 unexpected bugs
  • 動作確認

確認用にhello worldコンパイルして実行
hello.go

package main

import "fmt"

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

コンパイル(8g)、リンク(8l)して実行

$ 8g hello.go
$ 8l -o hello hello.8
$ ./hello
hello, world

(64bit版だと6g/6lだよ)
ちょっと遊んでみよう

(追記) クラスベースのオブジェクト指向な言語ではありません。クラスとか継承とかの機能は無いです。httpパッケージの機能が足りなかったので書き換えたかったのに...