The Go Blog
I/O での Go: よくある質問
先週の Google I/O での注目製品発表の中で、私たちの小さなチームは満員の部屋でプレゼンテーションを行い、現在および将来の Go プログラマーの多くと会いました。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 を使い始めた方法です。しかし、Go のオープンソースリリース以来、コミュニティは言語の多様なアプリケーションを発見しました。Web アプリからゲーム、グラフィックスツールまで、Go は汎用プログラミング言語として輝くことを約束しています。可能性はライブラリのサポートによってのみ制限されますが、それは驚くべき速さで向上しています。さらに、教育者は、Go の簡潔な構文と一貫性がこのタスクによく適していると指摘し、プログラミングを教えるために Go を使用することに関心を示しています。
私たちのプレゼンテーションにご参加いただいた皆様、またオフィスアワーでお話しいただいた皆様、ありがとうございました。今後のイベントでまたお会いできることを願っています。
Rob と Russ の講演のビデオはYouTube で視聴できます。