画面1●Go言語の公式サイト。右端のネズミはGo言語のマスコットキャラクター
画面1●Go言語の公式サイト。右端のネズミはGo言語のマスコットキャラクター
[画像のクリックで拡大表示]

 プログラミング言語、「Go」の存在感が増している。Goは、2009年に米グーグルが発表し、オープンソースとして公開した言語(画面1)。動的型付け言語の高い生産性と、C/C++のような静的型付けを持つコンパイラ型言語の安全性/性能の両立を目的に開発された(関連記事:GoogleがUNIX作者らが開発した新言語「Go」をオープンソースとして公開)。

 文法自体はCに似ているが、オブジェクト指向の考え方を採り入れ、ガベージコレクションの仕組みも備える。メモリーの確保や解放をプログラマーが明示的に行う必要がない。並列処理を標準でサポートしているのも特徴だ。

 Go言語はグーグル自身がソフトウエア開発の一部で用いているほか、他社による採用事例も増えている。例えば米ドロップボックスは2014年7月、Go言語の採用を表明した。国内でも、はてなやメルカリ、Gunosyなどが、サービス開発の一部にGo言語を採用していることを明らかにしている。

 新規開発には基本的にGo言語を用いると決めた国内企業もある。セキュリティ関連のSaaS(ソフトウエア・アズ・ア・サービス)を手掛けるHDEだ。

Go言語の三つのメリットを重視

 HDEでは元々、PythonやJava、PHP、C++などのプログラミング言語を利用してきた。中でも多用していたのはPython。クラウド向けの製品では、関数型言語のErlangを用いることも多かった(関連記事:[Erlang]分散システムに特化し耐障害性に優れた言語)。

 Go言語の利用を決めたのは2013年末ごろ。メッセージセキュリティ関連の製品のクラウド版を開発するに当たり、どんな技術を使うべきかを検討した。そこで候補に挙がったのが、海外で採用事例が複数公表されていたGoだ。「先行事例で評価されていたメリットがそのまま当社でも生かせるだろうと判断して、採用を決めた」(プロダクト開発部 田辺兼一氏)。

 同社が重視するGo言語のメリットは大きく三つある。一つは、データ型にまつわるエラーがコンパイル時に分かること。例えば文字列と数値のように異なるデータ型を演算しようとすると、コンパイル時にエラーメッセージが表示される。実行しなければエラーが判明しないPythonなどと比べて、早めに不具合を修正できる。

 コンパイル後の生成物が一つのバイナリーにまとまり、それさえあれば動くことも大きな利点という。別のライブラリーに依存していると環境によっては動作しないことがあるが、その心配がない。