シンプルで高速、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]
ヘッドライン
- Rambus、次世代携帯機器向けメモリ「モバイルXDR」を発表[21:16 2/9]エレクトロニクス
- Intel、基幹業務システム向け次世代プロセッサ「Itanium 9300」を発表[20:47 2/9]エレクトロニクス
- MicronとNanya、42nmプロセスを採用した2GビットDDR3を開発[20:07 2/9]エレクトロニクス
- ISSCC 2010 - 日立、1Gbpsあたり消費電力1mW以下のトランシーバ回路を開発[19:52 2/9]エレクトロニクス
- CSSを最適化する3つのツール[17:17 2/9]JavaScript / CSS / HTML
- TIOBEプログラミング言語人気 - Scratch/Erlang/Scala/JavaFX[17:17 2/9]プログラミング
- Microsoft、Red Hat Linuxサポートをひっそり追加[17:15 2/9]システム管理
- IBM、8コア/32MB eDRAM搭載の高速CPU「POWER7」を発表 - サーバも販売開始[17:02 2/9]サーバとストレージ
- 【レポート】UTM最新動向 - クラウドに耐えうる処理性能と管理性の強化が進む[14:42 2/9]セキュリティ
- あるコンパイラが重要なマイルストーンに到達、LLVM Clang[14:06 2/9]プログラミング




