BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース GoogleがGo 2について議論

GoogleがGo 2について議論

原文(投稿日:2017/07/15)へのリンク

今週開催されたGopherCon 2017で、GoogleのGoの技術リーダーであるRuss Cox氏がGoの未来について基調講演で話し、コミュニティに対して、次のメジャーバージョンに含めるべきものに関する提案をするよう促した。

Googleは10年ほど前にGoの開発を始め、最初の安定バージョン1.0は5年前にリリースされた。 現在の安定版は1.8.3で、Googleはコミュニティに対して、次のメジャーバージョン2.0に何を含めるべきかを問いかけている。

最近の調査によれば、Goの開発者の数は約50万人。仮にこれらすべての開発者にプログラミング言語に何を求めているのかを尋ねれば、長大な望ましい機能一覧が出来上がるかもしれない。しかし、Googleは、既存のGoのコードベースとの互換性を維持することに非常に関心を払っている。コードベースは約10億行と見積もられている。これは言語の成功を示しているが、Cox氏によれば、"Go 2の主な制約"でもある。

Go 1は互換性の約束とともにリリースされた。Go 1の仕様が満たされている限り、開発者はプログラムを正しくコンパイルして実行できるという約束で、開発者に安心を与えた。Go 2の仕様は、1.xとの互換性を失う可能性がある。Coxは次の理由により、新しい機能を注意深く選択する必要があると考えている。

Go 2は、Go 1.xを使用している開発者を含め、すべての開発者にもたらされる必要がある。古い習慣を忘れ、新しい習慣を学ぶのをお願いするのは、そうすることに大きな利点がある場合だけにする必要がある。

Go 2は、既存のGo 1ソースコードもすべて取り込む必要がある。Goのエコシステムを分割してはならない。Go 2で書かれたパッケージとGo 1で書かれたパッケージとが混在しているプログラムは、数年間の移行期間の間、労力をかけることなく問題なく動く必要がある。それをどのように実現するか、正確に把握しなければならない。go fixのような自動化されたツールが一定の役割を果たすかもしれない。

破壊してしまうのを防ぐため、Googleは新しい機能の数を"2または3くらい、5を超えない程度"に制限し、"それぞれの変更には、注意深い熟慮と、計画、ツーリングが必要"だ、としている。このような機能には小さな変更は含まれない。例えば、"より話し言葉のような識別子の使用やバイナリ整数リテラルの追加"のようなものだ。理由は"正しく実現するのが簡単だから"だ。Coxは、"エラー処理の追加サポート、不変または読み取り専用の値の導入、ジェネリックの追加など"重要な変更について話した。

Googleの視点から見れば、Go 2は"Goがスケールに失敗する主要な原因を直す"のが目的だ。Cox氏は、プロダクションのスケール、クラウド環境での並行アプリケーションの実行、開発でのスケール、多くの開発者が大きなコードベースで平行して開発している状況に言及した。

基調講演の多くは、Goを修正するための5ステップのプロセスを提示し、説明するのに費やされた。

go-process

より詳しい情報が欲しければToward Go 2というブログを読むといいだろう。Go 2の新しい機能の提案に興味がある人はGitHubのWiki使うよう求められている。

 
 

Rate this Article

Adoption Stage
Style
 
 

この記事に星をつける

おすすめ度
スタイル

BT