Go ブログ
Go at I/O: よくある質問
先週の Google I/O での注目の製品発表の中で、私たちの小さなチームは満員の聴衆の前でプレゼンテーションを行い、多くの現在および将来の Go プログラマーと会いました。特に、Go について少し学んだ後、それを使用することで得られる潜在的な利点(即時的なものと長期的なものの両方)に興奮した多くの人々と会えたことは非常に喜ばしいことでした。
I/O で多くの良い質問を受けたので、この投稿ではそのいくつかについて要約し、さらに詳しく説明したいと思います。
Go は本番システムに適していますか? Go は現在、準備が整っており、安定しています。Google では、Go をいくつかの本番システムで使用しており、それらはうまく機能していることをご報告します。もちろん、改善の余地はまだあります。そのため、私たちは言語、ライブラリ、ツール、およびランタイムの開発を継続しています。
ジェネリクスの実装予定はありますか? ジェネリクスのような機能に関する多くの提案が、公にも社内でも検討されてきましたが、今のところ、言語の他の部分と一貫性のある提案は見つかっていません。私たちは、Go の重要な強みの1つはシンプルさであると考えており、言語をより理解しにくくする可能性のある新機能の導入には慎重です。さらに、Go のコードを書けば書くほど(したがって、Go コードの書き方をより良く学ぶほど)、そのような言語機能の必要性を感じなくなります。
GPU プログラミングをサポートする計画はありますか? 現時点では具体的な計画はありませんが、Go はアーキテクチャに依存しないため、実現は可能です。異なるプロセッサアーキテクチャで実行されるゴルーチンを起動し、別々のアーキテクチャで実行されるゴルーチン間で通信するためにチャネルを使用する機能は、良いアイデアのように思えます。
App Engine で Go をサポートする計画はありますか? Go チームと App Engine チームの両方が、これが実現することを望んでいます。常にそうであるように、それがいつ現実になるかは、リソースと優先順位の問題です。
Android で Go をサポートする計画はありますか? 両方の Go コンパイラは ARM コード生成をサポートしているため、可能です。Go はモバイルアプリケーションを作成するのに最適な言語だと考えていますが、Android のサポートは現在積極的に取り組んでいるものではありません。
Go は何に使えるのですか? Go はシステムプログラミングを念頭に置いて設計されました。サーバー、クライアント、データベース、キャッシュ、バランサー、ディストリビューターなど、これらは Go が明らかに役立つアプリケーションであり、これが Google 内での使用を開始した方法です。しかし、Go のオープンソースリリース以来、コミュニティは言語の多様なアプリケーションを見つけてきました。Web アプリからゲーム、グラフィックツールまで、Go は汎用プログラミング言語として輝きを増すと期待されています。その可能性は、急速に改善しているライブラリのサポートによってのみ制限されています。さらに、教育者たちは、簡潔な構文と一貫性がタスクに適しているとして、プログラミングを教えるために Go を使用することに関心を示しています。
プレゼンテーションに参加してくださった皆様、またはオフィスアワーでお話をしてくださった皆様、ありがとうございました。今後のイベントでまたお会いできることを楽しみにしています。
Rob と Russ の講演の動画は、YouTube で公開されています。