[インデックス 12344] ファイルの概要
このコミットは、Go言語プロジェクトのドキュメントから「ロードマップ」に関する記述および関連ファイルを削除するものです。具体的には、doc/contrib.html
、doc/devel/index.html
、doc/devel/roadmap.html
の3つのファイルから、将来の機能やアイデアに関するロードマップの情報を削除しています。
コミット
commit 120c223822c2c4862cd5be282e12d2169c00a599
Author: Andrew Gerrand <adg@golang.org>
Date: Sat Mar 3 12:53:37 2012 +1100
doc: remove roadmap document
R=golang-dev, bradfitz
CC=golang-dev
https://golang.org/cl/5726047
---
doc/contrib.html | 3 --
doc/devel/index.html | 11 ----
doc/devel/roadmap.html | 135 -------------------------------------------------
3 files changed, 149 deletions(-)
diff --git a/doc/contrib.html b/doc/contrib.html
index f6789b17e3..e363469cd9 100644
--- a/doc/contrib.html
+++ b/doc/contrib.html
@@ -12,9 +12,6 @@
<p>View the status of Go builds across the supported operating
systems and architectures.</p>
-<h3 id=\"roadmap\"><a href=\"/doc/devel/roadmap.html\">Roadmap</a></h3>
-<p>Features and ideas being developed or discussed by the Go team.</p>
-
<h3 id=\"release\"><a href=\"/doc/devel/release.html\">Release History</a></h3>
<p>A summary of the changes between Go releases.</p>
diff --git a/doc/devel/index.html b/doc/devel/index.html
deleted file mode 100644
index 7fcfe8d41b..0000000000
--- a/doc/devel/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- The Go project -->
-
-<ul>
-<li><a href=\"roadmap.html\">Roadmap</a></li>
-<li><a href=\"release.html\">Release history</a></li>
-<li><a href=\"weekly.html\">Weekly snapshot history</a></li>
-<li><a href=\"http://build.golang.org/\">Build status</a></li>
-</ul>
-<ul>
-<li><a href=\"../contribute.html\">Contributing code</a></li>
-</ul>
diff --git a/doc/devel/roadmap.html b/doc/devel/roadmap.html
deleted file mode 100644
index d3c4947152..0000000000
--- a/doc/devel/roadmap.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!-- Roadmap -->
-
-<h2 id=\"Roadmap\">Go Roadmap</h2>
-
-<p>\n-This page lists features and ideas being developed or discussed by the\n-Go team. This list will be updated as work continues.\n-\n-<p>\n-The roadmap should be discussed on\n-the <a href=\"http://groups.google.com/group/golang-nuts\">golang-nuts\n-mailing list</a>.\n-\n-<h3 id=\"Language_roadmap\">\n-Language roadmap</h3>\n-\n-<p>\n-This is a list of language changes that are being considered.\n-Appearance on this list is no guarantee that the change will be\n-accepted.\n-\n-<ul>\n-<li>\n-Possibly rewrite restriction on goto across variable declarations.\n-<li>\n-Variant types. A way to define a type as being the union of some set\n-of types.\n-<li>\n-Generics. An active topic of discussion.\n-<li>\n-Methods for operators, to allow a type to use arithmetic notation for\n-expressions.\n-<li>\n-Possibly allow top-level packages to be given names other than main.\n-</ul>\n-\n-<h3 id=\"Implementation_roadmap\">\n-Implementation roadmap</h3>\n-\n-<ul>\n-<li>\n-Improved garbage collector.\n-<li>\n-Debugger.\n-<li>\n-Improved implementation documentation.\n-</ul>\n-\n-<h4 id=\"Gc_roadmap\">\n-Gc compiler roadmap</h4>\n-\n-<ul>\n-<li>\n-Implement goto restrictions.\n-<li>\n-Improved optimization.\n-<li>\n-Use escape analysis to keep more data on stack.\n-</ul>\n-\n-<h4 id=\"Gccgo_roadmap\">\n-Gccgo compiler roadmap</h4>\n-\n-<ul>\n-<li>\n-Implement goto restrictions.\n-<li>\n-Use goroutines rather than threads.\n-<li>\n-Separate gcc interface from frontend proper.\n-<li>\n-Use escape analysis to keep more data on stack.\n-</ul>\n-\n-<h4 id=\"Tools_roadmap\">\n-Tools roadmap</h4>\n-\n-<ul>\n-<li>\n-Strengthen goinstall until it can displace make for most builds.\n-</ul>\n-\n-<h4 id=\"Packages_roadmap\">\n-Packages roadmap</h4>\n-\n-<ul>\n-<li>\n-Faster, RE2-like regular expressions.\n-<li>\n-Comprehensive support for international text.\n-<li>\n-Support for international dates, times, etc.\n-<li>\n-Support for multilingual messages.\n-</ul>\n-\n-\n-<h3 id=\"done\">Done</h3>\n-\n-<ul>\n-<li>\n-gc: Generate DWARF debug info.\n-<li>\n-gc: Provide gdb support for runtime facilities.\n-<li>\n-Safe compilation mode: generate code that is guaranteed not to obtain an invalid memory address other than via <code>import \"unsafe\"</code>.\n-<li>\n-Gccgo: garbage collection.\n-<li>\n-SWIG support.\n-<li>\t\t\n-Simpler semicolon rules.\n-<li>\t\t\n-A more general definition of <code>...</code> in parameter lists.\n-<li>\t\t\n-Explicit conversions from <code>string</code>\t\t\n-to <code>[]byte</code> and <code>[]int</code>.\t\t\n-<li>\n-A function that will be run by the garbage collector when an item is freed\n-(runtime.SetFinalizer).\n-<li>\n-Public continuous build and benchmark infrastructure (gobuilder).\n-<li>\n-Package manager (goinstall).\n-<li>\n-A means of recovering from a panic (recover).\n-<li>\n-5g: Better floating point support.\n-<li>\n-Improved CGO including some mechanism for calling back from C to Go.\n-<li>\n-Faster, allocation-light reflection.\n-<li>\n-App Engine support.\n-</ul>\n```
## GitHub上でのコミットページへのリンク
[https://github.com/golang/go/commit/120c223822c2c4862cd5be282e12d2169c00a599](https://github.com/golang/go/commit/120c223822c2c4862cd5be282e12d2169c00a599)
## 元コミット内容
このコミットは、Go言語の公式ドキュメントから「ロードマップ」に関するセクションと、その詳細を記述した`roadmap.html`ファイルを完全に削除しています。
具体的には以下の変更が行われました。
* **`doc/contrib.html`**: 貢献者向けドキュメントから、ロードマップへのリンク (`<h3 id="roadmap"><a href="/doc/devel/roadmap.html">Roadmap</a></h3>`) とその説明 (`<p>Features and ideas being developed or discussed by the Go team.</p>`) が削除されました。
* **`doc/devel/index.html`**: 開発者向けドキュメントのインデックスページから、ロードマップへのリンク (`<li><a href="roadmap.html">Roadmap</a></li>`) が削除されました。このファイル自体が完全に削除されています。
* **`doc/devel/roadmap.html`**: Go言語の言語仕様、実装、ツール、パッケージに関する将来の計画や検討中の機能が詳細に記述されていたこのファイルが完全に削除されました。このファイルには、ジェネリクス、改善されたガベージコレクタ、デバッガ、より高速な正規表現など、当時のGoコミュニティで議論されていた多くの重要なトピックが含まれていました。また、「Done」セクションには、既に実装された機能のリストも含まれていました。
合計で3つのファイルが変更され、149行が削除されています。
## 変更の背景
このコミットは、Go言語のバージョン1.0がリリースされる直前の2012年3月に行われました。Go 1.0のリリースは、Go言語の安定性と後方互換性を確立し、長期的な基盤を築くことを目的としていました。
ロードマップドキュメントは、将来の機能や変更に関する情報を提供しますが、これは開発の初期段階や活発な議論が行われている時期には有用です。しかし、Go 1.0の目標が「安定した言語仕様と標準ライブラリの提供」であったことを考えると、将来の不確定な変更を示唆するロードマップは、その目標と矛盾する可能性がありました。
ロードマップを削除することで、GoチームはGo 1.0の安定性と、その後のバージョンにおける慎重な変更プロセスへのコミットメントを強調したと考えられます。これにより、ユーザーはGo 1.0が提供する機能セットに安心して依存できるようになり、将来の変更が既存のコードベースに与える影響を最小限に抑えるというメッセージが伝えられました。
また、ロードマップは常に最新の状態に保つ必要があり、その管理にはコストがかかります。Go 1.0のリリースという大きな節目において、開発チームは安定版の提供に注力し、不確定な将来の計画に関するドキュメントの維持を一時的に停止した可能性もあります。
## 前提知識の解説
### ロードマップ (ソフトウェア開発における)
ソフトウェア開発におけるロードマップとは、製品やプロジェクトの将来の方向性、目標、主要な機能、およびそれらを達成するための計画を視覚的に表現したドキュメントです。通常、特定の期間(例:次の四半期、次の1年)にわたる開発の優先順位とタイムラインを示します。
ロードマップの主な目的は以下の通りです。
* **ビジョンの共有**: プロジェクトの長期的なビジョンと目標を関係者(開発者、ユーザー、ステークホルダー)と共有します。
* **優先順位付け**: どの機能や改善が最も重要であるかを明確にし、リソースの配分を決定します。
* **コミュニケーション**: 開発の進捗状況や将来の計画について、透明性を持ってコミュニケーションを図ります。
* **期待値の管理**: 将来の機能に関するユーザーの期待値を適切に管理します。
しかし、ロードマップは常に変化する可能性があり、特にオープンソースプロジェクトでは、コミュニティのフィードバックや技術的な課題によって計画が変更されることが頻繁にあります。
### Go 1.0 リリース
Go 1.0は、Go言語にとって非常に重要なマイルストーンとなるリリースでした。2012年3月28日にリリースされたGo 1.0は、Go言語の仕様と標準ライブラリに「互換性の保証」をもたらしました。これは、Go 1.0で書かれたプログラムは、Go 1.xの将来のバージョンでもコンパイルされ、動作し続けることを意味します。
Go 1.0以前は、Go言語は活発な開発段階にあり、言語仕様やAPIが頻繁に変更されていました。これにより、既存のコードが新しいバージョンで動作しなくなる「破壊的変更」が頻繁に発生していました。Go 1.0のリリースは、この不安定な期間を終え、Goを実用的なプロダクション環境で利用できる安定した言語として位置づけるためのものでした。
Go 1.0の互換性保証は、Go言語が広く採用される上で極めて重要な要素となりました。開発者は、Go 1.0以降のバージョンアップによって既存のコードが壊れる心配が大幅に減り、安心してGoを採用できるようになりました。
## 技術的詳細
このコミットは、Go言語プロジェクトのドキュメント構造と情報公開戦略における重要な変更を示唆しています。
1. **ドキュメント構造の簡素化**: `doc/devel/index.html`の削除は、開発者向けドキュメントのインデックスページが不要になったか、あるいはその内容が他の場所に統合されたことを意味します。これは、ドキュメントのナビゲーション構造が再編成された可能性を示唆しています。
2. **情報公開の戦略変更**: ロードマップの削除は、Goチームが将来の計画に関する情報を公開する方法を変更したことを強く示唆しています。Go 1.0の安定性へのコミットメントを考慮すると、不確定な将来の機能リストを公式ドキュメントに含めることは、ユーザーに誤解を与える可能性があったと考えられます。
* **安定性への注力**: Go 1.0のリリースは、言語の安定性を最優先するものでした。ロードマップは、将来の変更を示唆するため、この安定性というメッセージと矛盾する可能性がありました。
* **コミュニケーションチャネルの変更**: ロードマップの議論が`golang-nuts`メーリングリストで行われるべきだと明記されていたことから、Goチームは公式ドキュメントではなく、メーリングリストやブログ、Go Conferenceなどのイベントを通じて、将来の方向性や議論中のトピックについてコミュニケーションを図る方針に転換した可能性があります。これにより、より動的でインタラクティブな議論が可能になります。
* **「Done」セクションの削除**: `roadmap.html`には、既に実装された機能のリスト(「Done」セクション)も含まれていました。このセクションも削除されたことは、リリースノートや変更履歴が、完了した機能に関する公式な情報源として機能することを意図していることを示唆しています。
この変更は、Go言語が成熟し、より広範なユーザーベースを獲得するにつれて、プロジェクトがどのように情報を管理し、コミュニティとコミュニケーションを取るかという点において、より洗練されたアプローチを採用した結果と見ることができます。
## コアとなるコードの変更箇所
このコミットで変更されたファイルは以下の3つです。
1. **`doc/contrib.html`**:
```diff
--- a/doc/contrib.html
+++ b/doc/contrib.html
@@ -12,9 +12,6 @@
<p>View the status of Go builds across the supported operating
systems and architectures.</p>
-<h3 id="roadmap"><a href="/doc/devel/roadmap.html">Roadmap</a></h3>
-<p>Features and ideas being developed or discussed by the Go team.</p>
-
<h3 id="release"><a href="/doc/devel/release.html">Release History</a></h3>
<p>A summary of the changes between Go releases.</p>
```
ロードマップへのリンクと説明が削除されています。
2. **`doc/devel/index.html`**:
```diff
--- a/doc/devel/index.html
+++ /dev/null
@@ -1,11 +0,0 @@
-<!-- The Go project -->
-
-<ul>
-<li><a href="roadmap.html">Roadmap</a></li>
-<li><a href="release.html">Release history</a></li>
-<li><a href="weekly.html">Weekly snapshot history</a></li>
-<li><a href="http://build.golang.org/">Build status</a></li>
-</ul>
-<ul>
-<li><a href="../contribute.html">Contributing code</a></li>
-</ul>
```
ファイル全体が削除されています。
3. **`doc/devel/roadmap.html`**:
```diff
--- a/doc/devel/roadmap.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!-- Roadmap -->
-
-<h2 id="Roadmap">Go Roadmap</h2>
-
-<p>
-This page lists features and ideas being developed or discussed by the
-Go team. This list will be updated as work continues.
-
-<p>
-The roadmap should be discussed on
-the <a href="http://groups.google.com/group/golang-nuts">golang-nuts
-mailing list</a>.
-
-<h3 id="Language_roadmap">
-Language roadmap</h3>
-
-<p>
-This is a list of language changes that are being considered.
-Appearance on this list is no guarantee that the change will be
-accepted.
-
-<ul>
-<li>
-Possibly rewrite restriction on goto across variable declarations.
-<li>
-Variant types. A way to define a type as being the union of some set
-of types.
-<li>
-Generics. An active topic of discussion.
-<li>
-Methods for operators, to allow a type to use arithmetic notation for
-expressions.
-<li>
-Possibly allow top-level packages to be given names other than main.
-</ul>
-
-<h3 id="Implementation_roadmap">
-Implementation roadmap</h3>
-
-<ul>
-<li>
-Improved garbage collector.
-<li>
-Debugger.
-<li>
-Improved implementation documentation.
-</ul>
-
-<h4 id="Gc_roadmap">
-Gc compiler roadmap</h4>
-
-<ul>
-<li>
-Implement goto restrictions.
-<li>
-Improved optimization.
-<li>
-Use escape analysis to keep more data on stack.
-</ul>
-
-<h4 id="Gccgo_roadmap">
-Gccgo compiler roadmap</h4>
-
-<ul>
-<li>
-Implement goto restrictions.
-<li>
-Use goroutines rather than threads.
-<li>
-Separate gcc interface from frontend proper.
-<li>
-Use escape analysis to keep more data on stack.
-</ul>
-
-<h4 id="Tools_roadmap">
-Tools roadmap</h4>
-
-<ul>
-<li>
-Strengthen goinstall until it can displace make for most builds.
-</ul>
-
-<h4 id="Packages_roadmap">
-Packages roadmap</h4>
-
-<ul>
-<li>
-Faster, RE2-like regular expressions.
-<li>
-Comprehensive support for international text.
-<li>
-Support for international dates, times, etc.
-<li>
-Support for multilingual messages.
-</ul>
-
-
-<h3 id="done">Done</h3>
-
-<ul>
-<li>
-gc: Generate DWARF debug info.
-<li>
-gc: Provide gdb support for runtime facilities.
-<li>
-Safe compilation mode: generate code that is guaranteed not to obtain an invalid memory address other than via <code>import "unsafe"</code>.
-<li>
-Gccgo: garbage collection.
-<li>
-SWIG support.
-<li>
-Simpler semicolon rules.
-<li>
-A more general definition of <code>...</code> in parameter lists.
-<li>
-Explicit conversions from <code>string</code>
-to <code>[]byte</code> and <code>[]int</code>.
-<li>
-A function that will be run by the garbage collector when an item is freed
-(runtime.SetFinalizer).
-<li>
-Public continuous build and benchmark infrastructure (gobuilder).
-<li>
-Package manager (goinstall).
-<li>
-A means of recovering from a panic (recover).
-<li>
-5g: Better floating point support.
-<li>
-Improved CGO including some mechanism for calling back from C to Go.
-<li>
-Faster, allocation-light reflection.
-<li>
-App Engine support.
-</ul>
```
ファイル全体が削除されています。
## コアとなるコードの解説
このコミットの「コアとなるコードの変更箇所」は、実質的に既存のドキュメントコンテンツの削除です。
* **`doc/contrib.html` および `doc/devel/index.html` からのリンク削除**:
これらの変更は、Goプロジェクトのドキュメントサイトにおけるナビゲーションとコンテンツの構造を直接変更しています。ロードマップページへの参照を削除することで、ユーザーがその情報にアクセスする経路を断ち、Go 1.0以降の公式な情報源からロードマップの概念を排除する意図が明確に示されています。特に`doc/devel/index.html`が完全に削除されたことは、開発者向けドキュメントのインデックス構造自体が再考されたことを意味します。
* **`doc/devel/roadmap.html` の完全削除**:
このファイルは、Go言語の将来の方向性に関する詳細な情報源でした。削除された内容には、以下のような重要なトピックが含まれていました。
* **言語ロードマップ**: `goto`の制限、バリアント型、ジェネリクス、演算子のメソッド、トップレベルパッケージ名など、言語仕様に関する検討事項。特にジェネリクスは、Go言語の歴史を通じて長らく議論されてきた機能であり、この時点でのロードマップに明記されていたことがわかります。
* **実装ロードマップ**: ガベージコレクタの改善、デバッガ、実装ドキュメントの改善など、Goランタイムやコンパイラの内部的な改善計画。
* **コンパイラ(Gc, Gccgo)ロードマップ**: `goto`制限の実装、最適化の改善、エスケープ解析の利用など、コンパイラ固有の目標。
* **ツールロードマップ**: `goinstall`の強化など、開発ツールの改善計画。
* **パッケージロードマップ**: 高速な正規表現、国際化対応(テキスト、日付、時刻、多言語メッセージ)など、標準ライブラリの拡張計画。
* **「Done」セクション**: DWARFデバッグ情報の生成、GDBサポート、ガベージコレクション、SWIGサポート、よりシンプルなセミコロンルール、`...`の定義、`string`から`[]byte`への明示的な変換、`runtime.SetFinalizer`、`gobuilder`、`goinstall`、`recover`、浮動小数点サポート、CGOの改善、リフレクションの高速化、App Engineサポートなど、Go 1.0以前に既に実装された多くの重要な機能がリストアップされていました。
これらの情報の削除は、GoチームがGo 1.0のリリースを機に、将来の不確定な計画に関する公式な情報提供を停止し、安定した現在のバージョンに焦点を当てるという明確な方針転換を行ったことを示しています。これにより、ユーザーはGo 1.0の安定した機能セットに集中し、将来の変更については、より動的なコミュニケーションチャネル(メーリングリスト、ブログなど)を通じて情報を得る形に移行しました。
## 関連リンク
* Go言語公式サイト: [https://go.dev/](https://go.dev/)
* Go言語ブログ: [https://go.dev/blog/](https://go.dev/blog/)
* Go 1.0リリースアナウンス (2012年3月28日): [https://go.dev/blog/go1release](https://go.dev/blog/go1release)
## 参考にした情報源リンク
* Web search results for "Go language roadmap document removal 2012":
* [https://bytesizego.com/](https://bytesizego.com/)
* [https://go.dev/](https://go.dev/)
* [https://plavno.io/](https://plavno.io/)
* [https://appspot.com/](https://appspot.com/)