buffers”をサポートしますか?Goのホームページを他の言語に翻訳してもいいですか?設計なぜGoにはXという機能がないのですか?なぜ文法はC++と異なっているのですか?オブジェクト指向プログラミングGoはオブジェクト指向言語ですか?どのようにすれば動的ディスパッチが行えますか?並列プログラミングアトミックな操作というのはどれでしょうか?ミューテックスはどうなっているんでしょうか?コードの記述ライブラリのドキュメントはどのように記述されますか?Goのプログラミングスタイルガイドはありますか?Goのライブラリにパッチを当てるにはどうすればいいですか?複数ファイルからなるパッケージを構成するにはどうすればいいですか?ユニットテストはどのように記述しますか?アサーション機能は無いのですか?実装コンパイラを構築するために、どのようなコンパイラ技術を使用してますか?どのようなランタイム実装ですか?クイック検索モジュール、クラス、または関数名を入力してくださいFAQ¶Goの起源¶このプロジェクトの目的は何ですか?¶ここ10年以上の間、メジャーなシステム言語と呼ばれるものは登場していません。この間コンピュータをめぐる景色は大きく変化しています。この変化には以下のような傾向があります:コンピュータはとてつもなく速くなりましたがが、ソフトウェア開発は速くなっていません。依存関係の管理というものが、今日のソフトウェア開発において、大きな位置を占めていますが、C言語の伝統のヘッダファイルはクリーンな依存性分析と高速なコンパイルとは対極です。JavaやC++のような扱いにくい型システムに対する反乱が徐々に拡大しつつあります。PythonやJavaScriptのような、動的な型を持つ言語に対して、人々が押し寄せてきています。人気のあるシステム言語の中には、ガーベジコレクションや並列計算のような基本概念をサポートしていないものがあります。マルチコアのコンピュータの出現によって、人々の間に、不安と混乱が発生しました。私たちは、並列をサポートし、ガベージコレクションを備えた、コンパイルの速い言語に挑戦することは価値があることだと信じています。上記の点に関して:大きなGoのプログラムを一台のコンピュータで数秒で数秒以内にコンパイルすることが可能です。Goは、依存性の分析を簡単にし、C言語スタイルのインクルードファイルや、ライブラリの持つオーバーヘッドのほとんどを解消するようなソフトウェアの構成が行えるモデルを提供します。Goの型システムには階層構造がないため、型同士の関係を定義するに貴重な時間を使う必要はありません。Goは静的な型システムを持つ言語ですが、典型的なオブジェクト指向言語と比べると型を作成するのが気軽に行えるような言語になっています。Goは完全なガーベジコレクションを備え、言語レベルで並列実行とコミュニケーションの機能をサポートしています。これらのデザインにより、Goはマルチコアのマシン上で動作する、システムソフトウェアの構築を行える様々な機能を提供しています。“Ogle”というのはGoのデバッガーの名前としていい名前になると思います。9のC言語のコンパイラの名前です。2の表を参照してください。6というのはアーキテクチャを表す文字で、AMD64(あるいはx86-64という呼び方が好きな人もいるでしょう)を表します。gはGoを表しています。私たちもこのことについて考えました。ガーベジコレクションが無い、依存性のチェーンが異様に長い、ネストされたインクルード、並列実行のサポートがないなど、C/C++の言語設計そのものに起因する多くの問題があります。C/C++をサポートするには、もっと根本からアプローチしていかなければ実現可能な解は得られないだろう、と考えています。私たちも、世界中のコンピュータのうちのWindowsが走っているものが大多数を占めていて、それらのコンピュータの上でGoのプログラムが動けばどれだけすばらしいことだろう、と思います。Goのチームは小さいために、Windowsに今すぐ移植を行うリソースがありません。Windows版の開発をしたいと考えている人がいるのであれば、質問に答えたりアドバイスをしたりというのは積極的に行っていきたいと思っています。