テストステ論

高テス協会会長が, テストステロンに関する情報をお届けします.

(go report) Goが本当はすごかったので, 謝罪する

Goを一目見た時, 糞だと思った. 何もクールでなく, 挑戦もしておらず, 学ぶ価値のない言語だと思った. この点でRustは違ったし魅力的に見えた.

今も, Goから学ぶことは何一つないと思ってるし, 実際そうだと思うが, チュートリアルを終えてGoは私の中で, 今一番この言語で仕事をしたい言語となった. Goを書きたい. あらゆるところでGoは糞だと吐き捨てていたので不愉快に思ってたGo関係者のみなさまにこの場で謝罪して手のひら返しをしたい.

Goは, CとPythonが基本的に分かっているならば簡単に理解出来る言語だ. Cの知識も要らないかも知れない. メモリをいじることもないし, ポインタという概念もあってないようなものだ. つまり, プログラマだったら誰でも書ける. それでいて, これらのむちゃくちゃ使われてる言語に対する不満を, 絶妙なバランスで黙らせることが出来る. Goは, OSSの世界で成功することにもっとも力点を置いた戦略なのだと思う. 天下のグーグル様が作っているという点もこの野望を手助けする.

以下私がGoについて良いと思った点:

  • ツールが素晴らしい. go getの存在がツールの発達を助けている.
  • Vimサポートがやばい. http://qiita.com/shiena/items/870ac0f1db8e9a8672a7
  • インストールが恐ろしく簡単(all.bashでビルドしてパスを設定するだけ. go getのおかげで, vim-goもその依存ソフトウェアを自動的にダウンロードしてくれる...)
  • 言語がシンプル. whileがなくてforだけで済ますとか. Pythonのように, 誰が書いても同じになることを美徳としてるのだろうか.
  • Tour of Goが最高すぎる. 逆にいうと, この程度のチュートリアルで理解してもらえるほどシンプルに作ったということ. Rustならこの100倍は必要だ(そして結局, 応用が出来るほどには理解出来ない).
  • メソッドを実装すればinterfaceを実装したことになるというのは良い. 動的言語野郎を誘いこむ蜜なのだと思う.
  • goroutineは良い. こういうメッセージパッシングを言語サポートしてないものは, 計算が一つのマシンで閉じることがすべてではない現代において, 採用すること自体がリスクなのではと思う.

Goを書きたい. Goを書くのは快適だと思う. 会社でGoを使うプロジェクトを立ち上げられないものだろうか.

エクセサイズとして, Go版のcoreutilsに手を挙げておいた. https://github.com/aisola/go-coreutils/issues/25 Rustのように苦戦することなく, 一瞬で終わると思う. 気持ちがノッてきたらむちゃくちゃ貢献するかも知れない. 他のプロジェクトにも暇さえあれば貢献していこうと思う.