The Go Blog
Goバージョン1のプレビュー
Goを使用する人々に安定した基盤を提供したいと考えています。人々はGoプログラムを書き、何年もの間、変更なしにコンパイルおよび実行され続けることを期待できるべきです。同様に、Goに関する本を書くことができ、その本がGoのどのバージョンを説明しているかを述べることができ、そのバージョン番号がずっと後になっても意味を持ち続けるべきです。現在のGoにはこれらの特性のどれも当てはまりません。
来年初めに「Goバージョン1」、略してGo 1と呼ばれるGoリリースを発行することを提案します。これは、このように安定した最初のGoリリースとなるでしょう。Goバージョン1でコンパイルされたコードは、Goバージョン1.1、1.2などの更新やバグ修正を発行する際に、ごく一部の例外を除いて、そのバージョンの寿命を通じてコンパイルされ続けるべきです。また、他のバージョンが進化しても、バグやセキュリティの脆弱性に対する修正が維持されます。さらに、Google App Engineなどの本番環境でも長期間サポートされます。
Goバージョン1は、安定したライブラリを備えた安定した言語となるでしょう。重要な修正を除き、バージョン1.1、1.2などのライブラリとパッケージに加えられる変更は機能を追加する可能性がありますが、既存のGoバージョン1プログラムを破壊することはありません。
Go 1の目標は、今日のGoの安定したバージョンであり、言語の全面的な再検討ではありません。特に、「委員会」による新しい言語機能の設計といういかなる努力にも明確に抵抗しています。
しかし、Go言語とパッケージには、以前から意図し、プロトタイプを作成したが、まだ展開していないさまざまな変更があります。これは主に、それらが重要で後方互換性がないためです。Go 1が長期間にわたるものであるとすれば、リリース後にそれらを遅らせ、それによって私たちの目標と矛盾する乖離を生じさせるのではなく、Go 1の準備の一部としてこれらの変更を計画、発表、実装、テストすることが重要です。
本日、Goコミュニティからのフィードバックを得るために、Go 1の予備計画を公開します。フィードバックがある場合は、golang-nutsメーリングリストのスレッドに返信してください。