Googleの Goプログラミング言語バージョン1.1のリリースが近いので、開発者チームは、最新ベータのリリースをアナウンスした。これには、新フィーチャの動作するプレビューが提供されている。特に、幾つかのユースケースでは、予想スピードが30%-40%増加した。Goのバージョン1.1は、1年ちょっと前の2012年3月にリリースされ、これまでGoogleは、バグ修正をリリースしてきたが、バージョン1.1は、 新フィーチャをもたらすとともに、1.Xバージョンとの後方互換性を維持している。アップデートは、ツールセット、言語フィーチャ、標準ライブラリへの変更に影響する。
言語の新フィーチャ
- 0 による整数除算
- メソッド値
- Returnの要求 – 以前は、値を返す関数は、明示的に “return”あるいは panicを呼び出す事が必要だったが、これがステートメントを終了させることの追加によって緩和された。
ツール/実装
- gccgo – バージョン4.8 GCC (GNU Compiler Collection)、2013年3月にリリースされたは、Go 1.1を部分的にサポートしているが、5月にリリース予定のGCC 4.8.1は、1.1を完全にサポートする。
- 64ビット実装上でのint/unitは、64ビットとして定義された。このことがこれらの型が32ビットのみであると期待しているプログラムでは問題になる可能性がある。
- 64ビットシステム上でのヒープサイズ – これは数十GBに拡張された(正確なサイズはシステムに依存し、最終決定していない)。
- go コマンド
- コンパイル、テスト、およびコードを実行する際のエラーメッセージがもっと分かりやすくなった。
- go getを使うために$GOPATH をセットしなければならない。$GOROOTと等しくするのは認められなくなった。
- go fix は、1.0.X から 1.1にコードを移行できるように調整された。(1.0.X 以前のコードは、直接 Go 1.1にアップグレードできない)
- 競合の検出 – 競合状態に悩まされている開発者は、go testで新しいオプション -raceの恩恵が受けられる。Linux、OS X と Windows の 64 ビットプラットフォームで現在利用可能だ。
Goの開発者は、いくつか(しかしすべてではない)ユースケースでパフォーマンスの大幅な増加を報告している。これらの増加は、コンパイラのコード生成の改善、より良いマップ実装、ネットワーク アプリケーションにおけるコンテキスト切り替えの削減、ガベージ コレクターの改善によってもたらされた。
主要なプラットフォーム(Windows, Linux, OS X,など) で利用できるダウンロードは、バージョン 1.1 Beta 2である。 開発のペースが非常に早いので、より新しいバージョンが出る可能性があり、そして出るだろう、ということに注意して欲しい。開発者は、既存のコードを再コンパイルすることで、新しい1.1のフィーチャを利用できる。