2012/04/21

Go言語をインストール

Golang

http://golang.org/
Go言語はGoogleが2009年に発表した新しい汎用プログラミング言語。先月の2012年3月にWindowsにも対応したversion1がリリース。簡単にWindowsにインストールできるようになったので、少し試してみようと思う。Go言語はCやC++に置き換わるような言語を目指しているので、興味深く思っていたところ。魅力的に感じたところはコンパイルが抜群に速く、実行速度もC並みに高速であること。オープンソースであること。並列処理が得意、ガベージコレクションがあること。静的言語でネイティブであること。つまりJavaのようなVMを必要としない。言語仕様がシンプルだということ。後発言語だけあって、他の言語の欠点を補っているように見える。ただ、実用性を重視しているためか、原始的な部分が見え隠れする。それが返って好印象だったりする。今後ライブラリー等が充実してくれば、それなりにブレークするかもしれない。下の絵はGo言語のマスコットキャラクター。

WindowsXPへのインストール

下記サイトからWindows用をダウンロードする。
http://code.google.com/p/go/downloads/list
このページに各種プラットフォーム向けのものが置いてある。今回はWindowsXPなので、以下のzipをダウンロード。
go.go1.windows-386.zip (30.1MB) 2012/3/28リリース
go1 Windows (x86-32, for both Intel and AMD 32-bit) ZIP archive Featured
ダウンロードしたzipファイルを解凍すると、goフォルダができる。この容量は107MB。とりあえず、
C:\go
に置くことにした。
次にpathを通す。
C:\go\bin;
これで利用可能になったはず。確認のために、コマンドプロンプトから、go と打ってみる。

こんな感じで認識されればOK。

GoでHello World

次に公式ホームページでGo言語の文法に沿ってソースファイルを書いてみる。公式ページは言語仕様、チュートリアルなどもあるし、日本語情報も充実しているのでGoの学習はお手軽だ。まずMeadowを使って下のようにHello Worldを書く。Meadowでの表示はとりあえずC言語と同じメジャーモードにした。ファイルフォーマットはUTF-8で保存する。拡張子は.goだ。まずは、そのままMeadow上のshellで実行してみる。コンパイルしてexeもつくれるが、もっと手軽にrunで実行できてしまう。ほとんどインタプリタ感覚。とにかくコンパイルが高速。あと余計なファイルをディレクトリに作らないので、何度も繰り返し実験するには適している。

続いて実行ファイルのhello.exeを作ってみる。コマンドは、
go build hello.go
問題なく実行できた。作ってびっくりしたのは、exeファイルのサイズだ。なんと1.16MBもある。JavaのようにVMで動かすわけでもなく、ネイティブな実行ファイルで、かつガベージコレクションなどがあることから、実行ファイルは巨大化するようだ。他にもいろいろ理由があるかもしれない。ひょっとしたら、コンパクトにする方法もあるかもしれないが、まだ調べてもいない。とにかく上記コマンドでは、びっくりサイズのexeになってしまった。小さいプログラムをちょろちょろ作るには大げさな印象を受けてしまった。ちなみにGo、C、Java の HelloWorld のサイズを比較してみると
  • Go 1.16 MB = 1,160,000 Byte
  • C 46.9 KB = 46,900 Byte
  • Java 428 Byte
Javaのバイトコードは単体で実行できない分、小さいことがわかる。でも実行時はJVMが起動するのでメモリを一番食って一番遅くなる。

A Tour of Go

Golangのサイトで、ブラウザ上から実際にコードを打って実行することができる。なかなか楽しい。
http://tour.golang.org/#1


使うかな?

とりあえずインストールして環境を作ってみたが、とても簡単だった。gccなどよりもお手軽だ。文法はちょっと癖があるけど、慣れの問題だろう。
さて、個人的に使うかな? 先日からCの学習をはじめたばかりなので、並行してGoは辛いし。そもそもGoを使って何か作りたいという明確な目的がないので、しばらくは文法で遊ぶぐらいかな。最近、言語による違いを楽しむという、妙な趣味になりつつある。