原文:http://npf.io/2014/10/why-everyone-hates-go/
酔っぱらった勢いで訳出してるので、違ってたら修正リクエストください。
訳者の1行でわかるサマリ
それって、Goのシンプルな言語哲学が、ML系言語好きのアイデンティティを挑発しちゃってるからじゃないの?
なんでGoってみんなに嫌われてるの?
いや、実際みんなって訳じゃないんだろうけど。最近、なんてGoをみんなそんなに批判的なのかって言うquoraの質問が出たもんで。(わるい、普段はquoraへのリンクを張らないんだけど、それがこの記事のきっかけだからね。)この質問への回答を見るまえにもう、僕には、次みたいなことが書かれていることがわかってた:
- Goは70年代に立ち往生した言語だ
- Goは40年間に及ぶプログラミング言語研究の成果を無視してる
- Goはブルーカラーの凡夫のための言語だ
- Go使いはJava1.0で仕事しても大丈夫なんだろう。
残念なことにこれらの回答は、Goがいかに悪いかは説明していても、なんでこんなにいろんな人の逆鱗に触れるのかについては説明していない。
これらの回答を読んでいて、はっとする瞬間があった。僕にはなんでそうなのかわかった。
ここに僕の同じ質問についての回答を記そう。「なんで、Goはこんなにも激しく批判されるのか?」Goがなんでダメかじゃなくね。
僕の回答を伝えるすばらしい2つの記事を紹介しよう。
Paul Grahamの「アイデンティティを小さく保つということ」についての記事と、Kathy Sierraの「クールエイド(信じ込んでいるのを馬鹿にしやすい)ポイント」(訳注:Kool-Aidを飲むは「妄信する」というスラングらしい。新興宗教の集団自殺で粉ジュースのkool-aidに青酸カリを混ぜて信者が飲んだことに由来するとのこと)についての記事だ。これら二つの記事はぜひ読んでほしい。これらはとても示唆に富んでいる。
ウーマンオンラインにおこった恐ろしい出来事と、些細なプログラム言語のフレーム戦争を比較するのは気が引けるけど、「クールエイドポイント」は、この記事とつなげたくなる適切なメタファだと思っている。
Paul曰く:
人は、その人のアイデンティティの一部となっている事について、実りある議論はできない。
これすなわち、自分のホームに近い話題ほど論理よりも感情が優先されてしまうということ。
Kathy曰く:
他の人が夢中になるほど、そのプロダクトやブランドへの憎しみは強くなる
これはつまり、彼らはクールエイドを飲んでしまってるということだ。
Goは、前述した40年に及ぶプログラミング言語研究の成果を窓から放り投げた近年では唯一の言語だ。他の新しい言語は、少なからず他の言語と張り合って機能を足そうとしている。
Clojure、Scala、Rust、全部が「モダンなプログラミング理論」を言語設計に取り入れようとしている。
Goは積極的にそうはしなかった。パターンマッチングはないし、ボローイングもない、純粋関数型プログラミングはないし、不変変数もない。オプショナル型もなければ、例外もない。クラスもなければジェネリクスもない。Goにはないものがたくさんある。
そして、これは最初に馬鹿にするには十分なことだ。
これは僕も同罪だ。最初にGoを見たときに、「え、例外がないの?やめとくわ」って思ったしね。
でも、そしたら、何がおこったか。人々がGoを使い始めたんだ。好き好んで。
さらには大きなプロジェクトもこしらえるようになった。これが、クールエイドポイント -- 人々がクールエイドを飲み出して、Go はいい言語だと騙された瞬間 -- だ。そして、これがGoへの軽蔑が、使っている人への人格批判や嘲笑に変わった瞬間だった。
ほとんどのGoを声高に批判する人はML由来の言語を書いている開発者だ。(Haskell,Rust,Scalaなどなど。)彼らは、すばらしいプログラミング言語と自身のアイデンティティを結びつけてしまっている。Goがただ存在するということがもはや「お前の良いプログラミングを構成するものは間違ってる」と言われているように感じるのだ。そして、多くの人がGoを使い、好むほどにお前の言語選択は、つまりはお前自身は 間違っているのだと言われているように感じてしまうのだ。
言っておくと、Goコミュニティのだれもそんなことは実際には言っていない。でも、Goの実用性とシンプルさを他のなによりも優先する哲学は、それらの言語が採用してきたもの(コードの正確性に寄与するのであれば、言語の複雑さはかまわないという考え)と対極に位置する。これが、言語とアイデンティティを紐づけた人々からすれば口汚く罵られているように思えるのだ。Goについての記事が、ハッカーニュースの一面を飾るときはいつでも、彼らが信じ、愛したすべてを傷つけている。そして、だからこそ彼らは、Goは時代遅れで、ブルーワーカーだけの言語だとコメントしてしまうのだ。
そう、これが僕の考えるところの「なぜGoを嫌う声は大きくなったのか」という答えだ。それは、他の人がGoに夢中になっているのを見ると自身の尊厳を傷つけられているように感じるからだ。
これは同時に、なんでGo言語を批判する多くの記事がGoogleに言及し、Googleが作ったのでなければGoはどんな風に死ぬはずだったか語ることについての答えでもある。
グーグルはいまや、クールエイドの自動販売機だ。
Googleが実際とは異なり優れた人材の宝庫であると一般に考えられているという事実により、よりいっそう彼らが人々を欺いていることが許しがたく、またGoがML由来の言語と対立することが侮辱的になるのだ。
(訳注:自信なし)
更新:パンティの束の件は削除した。性差別的だとおこられてしまった、プロフェッショナルでないので、言及すべきでなかった。傷つけてしまった人に謝罪を。