シンプルで高速、Googleの新プログラミング言語「Go」
2009/11/11
日進月歩のコンピュータ業界だが、C言語が生まれて30年以上経ってもなお、そのプログラミングスタイルは大きく変化していない。だが一方でC/C++の複雑性を排除したJavaやC#が登場したり、最近ではPythonやRubyなどのスクリプト言語が人気となるなど、新たな方向性が模索されつつある。そんななか、Googleの開発チームが新たに提案するプログラミング言語、それが「Go」だ。
Goのオフィシャルサイトの記述によれば、シンプルで高速、安全、そして並列処理が可能な点が特徴として挙げられている。C言語風の記述形式ながら異なる文法体系を持ち、ポインタが利用可能なものの、バッファオーバーフローの遠因となる複雑なポインタ演算を排除。
文法体系はシンプルで、ガベージコレクションが用意されているほか、並列実行を考慮して軽量なプロセス間通信を行う手段が提供され、簡易なプログラミングで大規模処理が可能なシステムが構築できるという。
また処理が高速なだけではなく、文法や依存関係をシンプル化したことで、文法解析のコンピュータ処理が容易になり、コンパイルが非常に高速になっている。下のデモでは、多数の関連ライブラリを含んだコードを、コンパイラ「gccgo」を使って2秒程度で処理している。1台の作業マシンでコンパイルをすぐに行えることを目標にしており、もうコンパイラ処理の待ち時間に一休憩というのは難しいかもしれない。
Go開発の発端は、従来のプログラミング言語に対するフラストレーションの解消がモチベーションとなっているという。
2007年初頭にGoogleの20%プロジェクトを使って開発がスタートし、その年の半ばには正式なプロジェクトとして本格的な開発が始まった。最終的にはマルチコアやマルチプロセッサシステムの開発言語として、CやC++などの言語の置き換えが目標となる。
対応OSは現時点でLinuxとMacで、x64とx86の2種類のポートがあるほか、Linux向けにARM版ポートも用意されている。インストール方法や言語仕様、チュートリアルに関してはGoのページに詳しい。まずは、そのプログラミング環境を体験してみてほしい。
package main
import fmt "fmt" // Package implementing formatted I/O.
func main() {
fmt.Printf("Hello, world; or こんにちは 世界\n");
}
関連記事
- JVMで動作する新言語「Noop」- Google開発者らによる新プロジェクト[2009/9/18]
- 【ハウツー】Google App EngineでPHPを動かそう![2009/4/28]
- Google CodeはMercurialを採用、Gitは見送り[2009/4/27]
- Google App Engine Java版、2万5,000まで登録可 - PHPも動作[2009/4/16]
- XMLよりもシンプル! Google、独自記述言語によるデータ交換ツールを公開[2008/7/9]
ヘッドライン
- IPA、OSS情報データベース「OSS iPedia」を刷新[18:55 3/19]プログラミング
- 東北大、鉄系高温超伝導体におけるディラック電子的振る舞いの観測に成功[18:05 3/19]エレクトロニクス
- 東芝、新潟県柏崎市で新型2次電池量産工場の建設を開始[17:58 3/19]エレクトロニクス
- Symbian、GCCでコンパイラ対応プロジェクト「Software Freedom Fighters」[17:49 3/19]プログラミング
- 伊藤忠商事、戸田工業と共同で北米にリチウムイオン電池正極材工場を建設[17:27 3/19]エレクトロニクス
- 昭和電工、樹脂複合材用カーボンナノチューブの量産を開始[17:04 3/19]エレクトロニクス
- 東北大、巨大超弾性歪みを有する高強度な鉄合金を開発[16:18 3/19]サイエンス
- STMicro、CryptoFirewallセキュリティ機能内蔵のSTB用SoCを開発[16:04 3/19]エレクトロニクス
- SEMI、2009年の半導体材料出荷額を発表 - 総額は前年比18.5%減の346億ドル[15:53 3/19]エレクトロニクス
- 住友大阪セメント、リチウムイオン電池向け高エネルギー密度の正極材を開発[15:37 3/19]エレクトロニクス






