tl;dr

海外記事を読みます

Go はショップ製の治具(ジグ)だ

Go Is a Shop-built Jig - Cocoaphony

  • ここで "Shop-built Jig" と呼んでいるのは、様々な問題に対して汎用的に適用できるよう用意されたツールの逆のコンセプトで、狭いけれども実践的な目的にあわせて作られた小さな道具のことを表している。
  • Go は現実的な問題を解くことしかできないので、スペック不足に思えてしまう。
  • 筆者は当初はジェネリクスのないことに不満を持っていたけれど、問題を抽象化しようとすること自体 Go の目指す所ではない。
  • 美しい道具をどう使うか悩むのではなく、問題を解決するコードをそのまま書くのが Go 流。(さらに gofmt を使えば、誰が書いてもほとんど同じようなコードになるだろう。)

なるほどねーって感じ。こういうやり方が気に食わないって人はそれはそれでいるだろうけれど、Go のポイントは抽象化しなさにある、というのはしっくりくる。

あわせて読みたい

Go: チャンネルは不十分―なぜ pipelining がそれほど簡単ではないのか - tl;dr