米Google、Androidを正式にサポートした「Go 1.4」をリリース

 米Googleは12月10日、プログラミング言語「Go」の最新版「Google Go 1.4」をリリースした。正式にAndridがサポートされ、ランタイム実装のCからGoへの移行も進んでいる。

 Goは強い静的型付けを特徴とし、Pythonのような動的言語の開発スピードとC/C++のようなコンパイル言語の安定性を併せ持つことを目指す。2012年3月に正式版がリリースされており、シンプルで信頼性のあるソフトウェアを構築できるとしている。ライセンスはBSD Lisence。

 Go 1.4は6月に公開されたGo 1.3に続くもので、5回目のメジャーリリースとなる。Goは6か月おきにリリースを行っており、バージョン1.4のリリースはこのスケジュールに沿ったものとなる。

 Go 1.4での大きな特徴は、Androidの正式サポート。golang.org/x/mobileレポジトリでのコアおよびライブラリサポートを利用して、Androidが動くARMプロセッサ向けにバイナリを構築できる。また、Androidで利用できる共有ライブラリも作成できるとのこと。なお、開発チームは現時点ではAndroidサポートは早期段階にある点を留意している。また、これまでNative Client(NaCI)サポートは32ビットおよび64ビット版x86のみだったが、ARMもサポートした。

 言語面では、for-range構文が変更され、変数を指定せずに構文を記述できるようになった。この変更は後方互換性があるものだが、パースツリーを解析するツールは修正の必要がある可能性があると注意している。

 また、Goコマンドに「go generate」という新しいサブコマンドが加わった。ソースコード生成を自動化するもので、例えばgolang.org/x/toolsサブレポジトリにあるstringerツールを使って、入力した定数Stringメソッドの生成を自動化するといったことに利用できるという。

 Goコマンドではまた、Internal(内部)パッケージとして、ソースサブツリー外のパッケージからインポートされないよう定義できるメカニズムも加わった。Internalパッケージは、1.4ではメインのGoレポジトリ内でのみ強制できるが、1.5以降は任意のレポジトリに拡大するという。このほか、ファイル名関連の処理の変更や、標準インポートパス、サブレポジトリのインポートパスなどが加わった。

 ランタイムも変更されており、これまでほとんどがCで実装されていたものが、Goでの実装に変更された。これは性能に影響しており、ほとんどのプログラムが1.3と同じかわずかに高速になり、一部は劣化するものもあるという。ガベージコレクタはGoに変換されたことで精度と速度が強化され、ガベージコレクション処理が多いプログラムは性能の改善が見込めるとしている。

Google Go
https://golang.org/