シンプルで高速、Googleの新プログラミング言語「Go」

    Junya Suzuki  [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");
    }
    

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン