何故私はGolangを使うのか

この記事は CPS Lab Advent Calendar 2016 6日目の記事です。

www.adventar.org

研究室向けに話したいこととか全く無いから、今度参加するLTで話す予定の内容の整理も兼ねて書き出すことにした。

何故私はGolangを使うのか

細々した処理を行うためのコードを書くとき、特に何も成約が無いときはGolangで実装をするようにしている。

github.com

github.com

単純に言語自体が好みってのもあるけど、Golangを使う理由ってのが明確に存在しているのでそれについて触れる。

シングルバイナリ、クロスコンパイル可能である

@akameco

雑なツールはJavaScriptで書くに限る

って言われたんだけど、ありえないとその時思ったし、今でもそれについては変わらない。

理由は単純で、言語のバージョンや動作環境に大きく振り回されるの辛いから。 例えばRaspberry Piでもそのツールを使いたいってなった場合、Raspberry Piに言語突っ込まなくちゃいけないし、いざ突っ込んでもライブラリのビルドでコケたりするの正直厳しい。

その点Golangはビルドすればシングルバイナリになるしクロスコンパイルも可能なので、Raspberry Piで使いたいなら出来上がったバイナリをぶん投げるだけだ。 手元で動けば向こうでも動くのもポイントの一つ。

使う環境を気にしないでコードを書けるのは体感素晴らしい。

てきとう(いい加減)に書ける

ちょっと雑に言い過ぎた。

Golangの言語仕様的にエラーハンドリングはしっかり行わされるので、コードの質がある程度担保される。 これがとてもよくて、滅茶苦茶な心理状態で書いたコードを跡から見直しても大体理解できる。

あとこれが重要なんだけど、パフォーマンス気にしてないで書いてもそれなりに動作が速い。

まとめ

Golangで雑にツールを作りましょう。

f:id:munisystem:20161206021909g:plain

github.com