PR
Go公式サイト
Go公式サイト
[画像のクリックで拡大表示]

 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")
}
Goによる並列処理の例
 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の公式サイト]