日進月歩のコンピュータ業界だが、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");
}