最終更新: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にはあります。
なので、流行るかどうかわからないサービスに使うのではなく、ある程度成長したサービスがパフォーマンスの向上を目的とする時に使う言語になります。