Googleの言語の次期バージョンの開発作業は、Go 2に向けた120の公開提案候補によってすでに始まっていると、GoogleのエンジニアであるRobert Grieserner氏が記している。さらにGoogleは、Go 2のプロセスをよりコミュニティ主導なものにしようと考えている。
既存の提案の大部分は、GoogleがGoの改善管理に使用しているプロセスを通じて集められたものだ。簡単に言えば、Go 1の互換性保証を満足しない提案が送られてくると、そのすべてにGo 2というラベルが付けられている。Goチームは現在、提案の分類作業に着手しており、Goのスコープ外にあるものや実行不可能な提案をすべて拒否している。このレビュープロセスを通り抜けた提案には、言語とその標準ライブラリに影響を及ぼすチャンスが与えられる。InfoQがすでに伝えているように、Go 2の大きなテーマはジェネリクスとエラー処理の改善だ。それ以外の可能性のある新機能については、すでに数百万に達しているGoプログラマと巨大なコードベースとのバランスを考慮する必要がある。これはGo 2へのプロセスを、Go 1.0の時のプロセスとは大きく異なるものにすることになる。ここでのリスクは、Goチームによると、新たな言語が個々の変更を慎重に選択する包括的なプロセスを得たものでないがために、コミュニティの分割を発生させることだ。
このリスクを避けるために、Googleは新たな提案評価プロセスを実施しようとしている。これまでの変更提案は、すべてGoチームの上級メンバによる委員会によって評価されていた。これからは、Goチームが興味深いと思う提案をコミュニティに提出する。コミュニティのフィードバックに基づいて、Goチームがどの変更を実装するか判断する仕組みだ。Goの3ヶ月という開発サイクルの範囲内で、Goチームとコミュニティ全体が新しい機能を試して、さらにフィードバックを提供する。それによって、新機能を提供するかどうかの最終判断が下されることになる。
さらに、Go 2で採用されるこのプロセスは、Go 1リリースに機能を追加するインクリメンタルプロセスになる予定だ。実際にGoチームは、すでにGo 2提案の中から、Unicode識別子の追加やバイナリ整数リテラルの追加、シフト式の改善など、次リリースに予定されているGo 1.13に含む機能をすでにいくつか選択している。
次はコミュニティがフィードバックを提供する時だ。 このスクリーニングを通過すれば、上記の機能が2019年2月1日までに言語に反映されることになる。その時点から、Goチームとコミュニティに新機能を試す機会が与えられて、新機能を維持するか、あるいは廃棄するかが判定される。
この記事を評価
- 編集者評
- 編集長アクション