インタビュー:Go言語について
2011年1月7日金曜日
[Go 言語とは、Google が多くのコントリビュータの皆さんと共に開発している新しいオープンソースのプログラミング言語で、昨年 11 月 10 日に 1 周年を迎えました。そこで、Google でソフトウェア エンジニアとして働きつつ Go 言語のコントリビュータとしても活躍している鵜飼 文敏に Go 言語についてインタビューを行いました。]
山崎: Go 言語の一周年おめでとうございます。
鵜飼: もう一周年、早いものです。プログラミング言語が普及するには 5 年、10 年といわれているのでまだまだこれからですね。
山崎: この機会に改めて Go 言語とは何であるか、その魅力について教えてください。
鵜飼: 静的型付けコンパイラ言語のよさに Lightweight Language の使いやすさをブレンドしたような言語です。規模が小さい頃からどのような構造にするかキチンと設計しなくても、作っていくにつれて改善していくことがしやすくなっています。Lightweight Language のように簡単なエラーも実行時にならないとチェックされないということもなく、コンパイル時にチェックできるのがうれしいところです。
山崎: 先日 Go 言語一周年を記念して、Developer Advocate である Andrew Gerrand が来日し、Tech Talk が開催されました。いかがでしたか?
鵜飼: 大勢の方に参加してもらって、質疑も活発におこなわれて、多くの人に興味を持ってもらえている感じがしました。
山崎: この一年を振り返って、どのような変化がありましたか?
鵜飼: 言語仕様も細かく変わっていっていますね。Windows でもだいぶ使えるようになってきています。あとサードパーティ製ライブラリが使いやすくなってきています。 http://godashboard.appspot.com/package をみるとたくさんのライブラリが作られていることがわかります。
山崎: Google が新しい言語を作る意義はどのようなところにあるのでしょうか?
鵜飼: プログラミング言語というのは、ソフトウェアの設計やプログラマの生産性に影響を与えます。過去の経緯にとらわれずに現在必要とされている特徴をそなえたプログラミング言語を新しく作ることで、プログラミングをより楽しくし生産性をあげていきたいと考えています。
山崎: このブログは developer の皆さんに向けたブログです。Developer にとって Go 言語はどのような意義がありますか?また、Go 言語はどんなことに向いているのか、向いていないのかなどのアドバイスがあれば教えてください。
鵜飼: Go 言語に限らず新しいプログラミング言語を学ぶことはプログラミングの考え方を広げる上でいい経験になります。Go 言語は UNIX や Plan9 をはじめ多くのシステムプログラムを作ってきた優れた開発者たちが作った言語ですから、彼らにとっていいプログラムを書きやすい言語になっているはずなので、いいプログラムを書きやすくなっていると思います。ネットワークサーバーなんかに向いていますね。最適化やガーベジコレクションの実装などは改善の余地があるので、高性能が厳しく要求されるところに使うのはまだ早いかもしれません。まだ若い言語ですから、いろいろな分野で使ってみて、必要な機能などがあれば提案してみるといいかもしれませんね。その機能が汎用的に有用そうであれば採用されるかもしれません。
山崎: 鵜飼さんは 20% プロジェクトとして Go 言語に関わっておられると伺いましたが、20% プロジェクトについてもう少し教えてください。
鵜飼: Google では 20% ほどの時間を自分のメインの仕事以外に使っていいことになっています。Go 言語のチームではありませんが、Go のパッケージなどを作ったりするのに 20%の時間を使ったりしました。このように他のチームを助ける以外にも、まったく新しいプロジェクトを始める時も 20% の時間である程度のプロトタイプやモックを作るところから始めることがよくあります。
山崎: ありがとうございました。
山崎: Go 言語の一周年おめでとうございます。
鵜飼: もう一周年、早いものです。プログラミング言語が普及するには 5 年、10 年といわれているのでまだまだこれからですね。
山崎: この機会に改めて Go 言語とは何であるか、その魅力について教えてください。
鵜飼: 静的型付けコンパイラ言語のよさに Lightweight Language の使いやすさをブレンドしたような言語です。規模が小さい頃からどのような構造にするかキチンと設計しなくても、作っていくにつれて改善していくことがしやすくなっています。Lightweight Language のように簡単なエラーも実行時にならないとチェックされないということもなく、コンパイル時にチェックできるのがうれしいところです。
山崎: 先日 Go 言語一周年を記念して、Developer Advocate である Andrew Gerrand が来日し、Tech Talk が開催されました。いかがでしたか?
鵜飼: 大勢の方に参加してもらって、質疑も活発におこなわれて、多くの人に興味を持ってもらえている感じがしました。
山崎: シャイな方が多い日本なのでスピーカーの Andrew にはあまり質問が出ないかも。。。と伝えてあったのですが、熱心な質問が止まりませんでしたね。関心の高さが伺えました。
[Go 言語 TechTalk には約 100 人の皆さんにご来場頂きました]
鵜飼: 言語仕様も細かく変わっていっていますね。Windows でもだいぶ使えるようになってきています。あとサードパーティ製ライブラリが使いやすくなってきています。 http://godashboard.appspot.com/package をみるとたくさんのライブラリが作られていることがわかります。
山崎: Google が新しい言語を作る意義はどのようなところにあるのでしょうか?
鵜飼: プログラミング言語というのは、ソフトウェアの設計やプログラマの生産性に影響を与えます。過去の経緯にとらわれずに現在必要とされている特徴をそなえたプログラミング言語を新しく作ることで、プログラミングをより楽しくし生産性をあげていきたいと考えています。
山崎: このブログは developer の皆さんに向けたブログです。Developer にとって Go 言語はどのような意義がありますか?また、Go 言語はどんなことに向いているのか、向いていないのかなどのアドバイスがあれば教えてください。
鵜飼: Go 言語に限らず新しいプログラミング言語を学ぶことはプログラミングの考え方を広げる上でいい経験になります。Go 言語は UNIX や Plan9 をはじめ多くのシステムプログラムを作ってきた優れた開発者たちが作った言語ですから、彼らにとっていいプログラムを書きやすい言語になっているはずなので、いいプログラムを書きやすくなっていると思います。ネットワークサーバーなんかに向いていますね。最適化やガーベジコレクションの実装などは改善の余地があるので、高性能が厳しく要求されるところに使うのはまだ早いかもしれません。まだ若い言語ですから、いろいろな分野で使ってみて、必要な機能などがあれば提案してみるといいかもしれませんね。その機能が汎用的に有用そうであれば採用されるかもしれません。
山崎: 鵜飼さんは 20% プロジェクトとして Go 言語に関わっておられると伺いましたが、20% プロジェクトについてもう少し教えてください。
鵜飼: Google では 20% ほどの時間を自分のメインの仕事以外に使っていいことになっています。Go 言語のチームではありませんが、Go のパッケージなどを作ったりするのに 20%の時間を使ったりしました。このように他のチームを助ける以外にも、まったく新しいプロジェクトを始める時も 20% の時間である程度のプロトタイプやモックを作るところから始めることがよくあります。
山崎: ありがとうございました。
=================================================
鵜飼 文敏プロフィール