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に手を挙げておいた。
Rustのように苦戦することなく、一瞬で終わると思う。気持ちがノッてきたらむちゃくちゃ貢献するかも知れない。他のプロジェクトにも暇さえあれば貢献していこうと思う。