Googleは2009年11月10日(現地時間),新しいプログラミング言語「Go」をオープンソース・ソフトウエアとして公開した。「動的言語の開発生産性とC/C++に迫る静的言語並み性能を兼ね備えた,並列システムプログラミング言語」としている。UNIXの作者のひとりであるKen Thompson氏らが開発した。
Goは,C/C++風の記法をシンプルにした文法を採用している。Go開発チームによれば「C/C++に迫る高速性,タイプ・セーフ/メモリー・セーフであることによる安全性,『goroutine』と呼ぶ軽量プロセスによる並列処理のサポート,速いビルドやクリーンな文法など“楽しさ(fun)”」が特徴であるという。並列処理に関しては数千のgoroutineを走らせることができるとしている。またクロージャやリフレクションなどの機能も備える。
開発チームには,Ken Thompson氏のほかRobert Griesemer氏, Rob Pike氏, Ian Taylor氏, Russ Cox氏, Jini Kim氏,Adam Langley氏らが名を連ねている。
Goのコード例package main
import "fmt"
func main() {
fmt.Printf("Hello, 世界\n")
}
var sem = make(chan int, MaxOutstanding)
func handle(r *Request) {
sem <- 1; // Wait for active queue to drain.
process(r); // May take a long time.
<-sem; // Done; enable next request to run.
}
func Serve(queue chan *Request) {
for {
req := <-queue;
go handle(req); // Don't wait for handle to finish.
}
}
[GoogleオープンソースBlogへの投稿]
[Goの公式サイト]