エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

[特集:G-1グランプリ 2/3] 和田卓人が投票結果を分析!「主義が貫かれた言語は嫌われにくい」

公開

 

6月14日に記事上で投票を受け付けた直後から、ツイッターなどで各言語のファンが激しく議論を展開。まさに「宗教戦争」の様相を呈していた「G-1グランプリ」。 「Webアプリ開発をする際のスキ/キライな言語は?」という質問に対する、読者からの投票結果は以下の通りとなった。※1

投票実施期間:2011年6月14日〜17日、有効投票数304
※1 5%未満はすべて「その他」に包括
※2 はScala、Common Lisp、F#、Haskellの合計

投票実施期間:2011年6月14日〜17日、有効投票数304

※1 5%未満はすべて「その他」に包括
※2 はScala、Common Lisp、F#、Haskellの合計

タワーズ・クエスト株式会社
プログラマー 兼 取締役社長

和田卓人氏
プログラマー、テスト駆動開発者。学生時代、オブジェクト指向分析/設計に傾倒。その後、ソフトウエアパターンやXP(eXtreme Programing)を実践する人たちと出会い、テスト駆動開発の誕生を知る。現在は文章を書いたり、講演を行ったり、ハンズオンイベントを開催しながら、テスト駆動開発の普及運動を行っている

この結果を見て、『プログラマが知るべき97のこと』(オライリージャパン刊)の監修者である和田卓人氏はどう感じたのだろうか。

プログラミング言語はただの道具です。でも、仕事をしている間、ずっと触れているものでもある。そこに思い入れが生まれるのは、ごく自然なことだと思いますね。それに、言語は周囲に『文化』や『思想』、そして『コミュニティ』や『言語作者の人柄』などをまとった存在です。使いこなしていくうちに、そうしたウェットなものに触れ、スキ・キライの感情が芽生えていくのだろうと思います」

会社員が勤めている会社に対し帰属意識を持つように、プログラマーは言語に対して帰属意識を持っている、と和田氏。

「僕らは先輩や同僚から学んだり、ツイッターやメーリングリストなどで情報交換したりするなど、人との触れ合いを通じて言語をものにしていきます。その過程で、愛着や帰属意識が生まれるのでしょう。だから、他の言語を使っている人から批判されると、とたんにディスり合いが始まる。このアンケート結果からは、そうやってプログラマー同士が仲良く喧嘩している構図が見えてきます」

Pythonが人気なのは「設計思想が明確だから」

それでは、アンケート結果を詳しく見てみよう。

「まず目を引くのが、Scala、Common Lisp、F#、Haskellといった関数型言語がランクインしていることです。これらに『スキ』だと投票した人は合計5.7%。C#やPerlの投票者数とほぼ同じです。学習意識が高く、新しい言語に興味を持つ人が相当数いることの証明といえますね」

最も好かれている言語はRuby。「スキ」の得票率は26.4%で、2位のPHPを引き離してダントツのトップだった。

「これは、Rubyファンの愛が集まった結果だと言えるでしょう(笑)。前回の記事の影響があるのは否めませんが、それを差し引いてもRubyは比較的愛されている言語だと思います」

そして、驚きだったのがPythonの好評ぶりだ。「スキ」の得票率は13.9%で、堂々の4位。一方、「キライ」に投じた人は1人もいなかった。

キライに投じた人が1人もいないのは特徴的ですね。Pythonは、主義主張がはっきりした言語です。PerlやRubyなどでは、1つの問題を解決するために複数の方法が用意されています。でもPythonでは、1つの問題を解決させるなら、コードの書き方も1通りになるべきだという思想。そうした『様式美』を重んじる姿勢に共感するプログラマーが多いのでしょう。もうひとつ、Pythonを使った開発案件は、まだまだ多くないのが実情です。つまり、『仕事で仕方なく使わされた』という経験を持つ人は少ないのではないかと思われます。設計思想に共鳴したファンが熱狂して採用し、さほど心に響かなかった人は敬遠する。それが、スキとキライの得票率が大きく開いた理由なのではないかと推測します」

アンチの多さは、大きなシェアを持つ証拠

一方、一番嫌われているのはPHPという結果となった。「スキ」が16.8%に対し、「キライ」は37.5%もいる。また、Javaは「スキ」で3位に入ったが、「キライ」でも2位にランクイン。

「好きな言語が分散しているのに対し、嫌いな言語の得票はPHP、Java、Visual Basicの3つに集中しています。これらの共通点は、長い歴史を持っていること。何度もアップデートを繰り返すごとに、言語体系の中での整合性を保つのが難しくなっている点が、この結果に影響しているのかもしれません。例えばJavaは、下位互換性を保つため、これまでかなりの無理を重ねてきました。それに比べ、新しい言語は過去からの学びや改善を盛り込んでおり、一貫性もあるでしょう。言語のみで比べてしまうと優れているのは必定です」

また、メジャーゆえにアンチが増える側面もあるというのが、和田氏の指摘。

「開発現場では、プログラマーではなく、お客様側の都合で使う言語が決められることもあります。つまり、メジャーで需要が大きい言語ほど、プログラマーの意向に反して押しつけられてしまうケースがあるのです。PHPを嫌う人が多いのは、PHPが市場で大きなシェアを獲得していることの裏返しでしょう。よく言われるように、『アンチが多いのは人気の証拠』なのです」

[特集:G-1グランプリ 1/3] スキな言語⇒PHP、キライな言語⇒PHP。理由は「あと一歩のところで悲しくなる」から

[特集:G-1グランプリ 3/3] プログラマーが実践すべきトレーニングのこと