Goプログラミング言語が初のバージョンアップ, パフォーマンスをアップしてv.1.1へ

Googleが今日(米国時間5/13)、同社のオープンソースのプログラミング言語Goバージョン1.1をリリースした。1.0が出てから1年あまりになる。並列処理とスピードを重視するこの言語は、これまで3回のメンテナンスリリースを行ったが、バージョン番号を上げることは控えてきた。しかし今回の新バージョンでは、Goのチームによると、パフォーマンス関連の重要な改良がいくつか導入されて、正規のバージョンアップにふさわしくなった。既存のGoのコードも、1.1でビルドすると目に見えて高速になるという。

バージョン1では、Goが一定の成熟度と安定度に達したことが示され、また今後のリリースとの互換性も保証された。今日のリリースは、チームによると、その約束が守られている。言語にもライブラリにも重要な変更がいくつか導入されたが、後方互換性は完全に維持されている。“Go 1.1用にコードの変更が必要となる部分はほとんどない”、と彼らは書いている。

新バージョンにおける変更には、“コンパイラとリンカ、ガーベッジコレクタ、goroutineのスケジューラ、マップの実装、および標準ライブラリの各部の最適化が含まれる”。

新バージョンにはまた、メソッド値(method values)が導入され、リターン要件が少々変更された(それにより、プログラムがより簡明かつより正しくなるという)。さらに、新たなレースデテクタ(race detector, 競合検出)により、メモリの同期化エラーを見つけられるようになった。

Goに関心を持つデベロッパは、初期だけでなく今でも着実に増えており、またとくに、Go言語の並列処理に強い性質を活かせると判断して、実際のプロダクションに採用した企業も少なくない。たとえばCloudFlareは、同社のRailgunソフトウェアの重要な部分のプロダクションにGoを使っている。またBitlyHerokuなどはGoを使って同社のインフラの一部を構築するなど、ますます多くのスタートアップや既存企業がGoのユーザ企業になりつつある。

JavaScriptをリプレースする目的で作られたDart〔日本語Wikipedia〕は伸び悩んでいるが、Goはどうやら軌道に乗ったようだ。2007に生まれたGo言語には、デベロッパたちがガーベッジコレクションと並列処理を言語本体が持つ現代的な言語を求めていたこともあって、その前方には明るい未来がある。

[原文へ]
(翻訳:iwatani(a.k.a. hiwa))