日進月歩のコンピュータ業界だが、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] |
Oracle Berkeley DB Java Edition 4.0登場
【コラム】FileMaker×PHPで作る、簡単・便利なWebアプリ 第37回 API for PHPの中枢、FileMakerクラス(1)
| 超新星残骸中にないはずの多量の一酸化炭素 - 天文衛星「あかり」が発見 [21:42 2/9] |
| 【レポート】ROBO-ONE委員会 - 第20回大会でのROBO-ONE Lightの開催を決定 [20:27 2/9] |
| 火星に海の存在を示す有力な証拠が発見される - ESAが発表 [18:48 2/9] |
| iOS向けSPDYライブラリが登場、普及はじまるSPDY [11:57 2/9] |
| GitHubのアクティブプロジェクト、もっとも多いのはMITライセンス [11:42 2/9] |
|
大東駿介、改名後初の写真集発売--名前を変えたのは「自分の決意表明です」 [00:30 2/10] エンタメ |
|
悲しいけれど超ウマい!極貧芸能人が編み出した奇跡のアイデアレシピベストテン! [00:06 2/10] キャリア |
|
みんなが聴きたい女性アーティスト・ラブソングベスト30を思い出の映像と共に発表! [00:05 2/10] キャリア |
|
でかっ!体長12mもあるジンベイザメが水揚げされる(動画) [00:04 2/10] キャリア |
|
間違って送ったFacebookの友達リクエストを取り消す方法 [00:03 2/10] キャリア |