どんなプロジェクトに向いているのか

最終更新:2020/05/01


Goはシングルバイナリで出力可能なので、コンテナ開発に向いています。

シングルバイナリは、バイナリだけで実行可能なファイルのことです。

つまり、余計なライブラリをインストール必要がありません。

なので、html, css, jsなどを含まないAPIの開発においては、rustとgoが有力な選択肢になります。

dockerなどのコンテナは, busyやscrtchなどの軽量のOSが用意されています。

pyhtonやrubyで作成したアプリの場合は、OSにライブラリを導入する必要がありますが、Goでビルドしたアプリの場合、OSにライブラリの導入が必要ありません。

なので、非常に軽量なイメージでアプリを動かすことができます。

イメージが軽量だと、Kubernetesなどのスパイク対策にもなります。

なので、Goはコンテナを使った開発に向いている言語です。

一方で標準関数が貧弱という欠点もあります。

python, rubyなどで開発経験のあるエンジニアは、Goの表現力の低さに最初はストレスがたまると思います。

関数が貧弱ということは、開発工数もpythonやrubyよりも高くなります。

しかし、それを補ってもあまりあるほどの性能がGoにはあります。

なので、流行るかどうかわからないサービスに使うのではなく、ある程度成長したサービスがパフォーマンスの向上を目的とする時に使う言語になります。