調査：Subredditsに投稿される肯定的・否定的意見の分析

先週、私は素晴らしくて、少し笑える非公式の調査を偶然見つけました。これはTobias Hermann(ハンドルネームはDobiasd)が行った調査で、subredditのフィードから20以上のプログラミング言語に関するスレッドを探し出し、ユーザ同士のやりとり、コメント、意見を再度見直したものです（警告：ユーザによる不適切な投稿もあるので、職場での閲覧には注意が必要です）。それでも、私はTobiasの調査内容をとても気に入り、Typesafeのブログに記事の投稿を打診するため、そして、なぜ彼がこのような興味深い実験を行ったのかの理由を聞くために、彼にコンタクトを取りました。彼はとても謙虚でありながら、その返事からは好奇心がみなぎっていることが感じられました。以下がTobiasからの返事です。

“正直、どうして私がこのような調査をするに至ったかは覚えていないのですが、この調査を行っている当時、ElmやHaskellを学ぶのがともて楽しく、それ故に通常私が仕事で使っているC++にフラストレーションがたまっていたというのが理由でしょう”

Tobiasは、4つの区分に分類して調査を行い、それぞれを詳しく調べています。ちなみに、Tobias本人は、これは”ハードサイエンスではない”と述べています。

共通の言及(TIOBEプログラミング言語ランキングインデックスと比較)

批判的な感情

好意的な感情

言葉の使用 – abstract、category、pure、theory、hardware

Scalaのメイン・コントリビューターかつ商業サポーターとしては、Scalaがどういったケースで登場するのか、また他の言語とどのように比較されているのか、とても興味があります。では、早速見て行きましょう！

共通の言及 – “ScalaとJava”が上位を占める

他のプログラミング言語を含む”Scala”への言及を見てみましょう。データを見て言えることは、共通して言及されることが一番多いのは”Java”で、次いでHaskell、Python、Clojureと続きます。

興味深いのは、TobiasはTIOBEプログラミング言語ランキングインデックスでも比較をしていることです。このTIOBEのランキングインデックスは、GithubのリポジトリやStackoverflowでのアクティビティを比較する、より実地調査的なアプローチと思われるRedmonkとは対照的に、GoogleやBingなどの検索エンジンを使って独自の研究方法論を基に、詳細な調査を行うものです。





TIOBEインデックスと比較したときの、他言語の言及の割合



信じがたいことがですが、Scalaはエンジニアの間でTIOBEインデックスランキングよりも100倍以上話題に上がっていることになります。どうしてでしょう？ Haskellユーザにおいても140倍以上という結果が出ていることから、インデックスのランク付けではどのような状況でこれらの言語が話題になるのか気になりますね。

批判的/好意的な言及から割り出された肯定的・否定的な意見（職場閲覧注意！）





含まれる言葉/10,000コメント



批判的な感情と好意的な感情の比較を見てみると、関数形プログラミング言語であるScalaやLisp、Clojure、Haskellは好意的な感情の割合が高いことが分かります。ですが、これらの言語は本当にそこまで使われているのでしょうか？

このツイートに対し、私は回答しなければいけないと感じました（私たちはTypesafeの愛読者やScalaユーザから、45ものScala を用いた成功事例を得ることができ、とても誇りに思っています）。

subreddit上でScalaへの好意的な感情を表す言葉のほとんどが”interesting（興味深い）”、”cool（クール）”、”awesome（すごい）”のようです。RubyとJavaScriptへの好意的な言葉も非常に多いのですが、批判的な言葉のリストでも上位であることを考慮すると、ある意味、結果は差し引きゼロと考えられます。





含まれる言葉/10,000コメント



Scalaは真ん中より少し低い順位で（22言語の中で10番目）、Scalaへの感情的な言葉のうち、批判的ではない言葉が98.85%を占めるのに対し、批判的な言葉は1.15%ほどでした。全体で最も批判的な言葉が多かったのはPHP、JavaScript、Javaで、批判的な言葉が最も少ない6言語に対する批判的な言葉の総数に匹敵する数値となりましたが、言語の採用される規模を考えれば妥当な結果でしょう。

言葉の使用について





含まれる言葉/10,000コメント



“abstract（抽象）”、”category（区分）”、”pure（純粋）”、”theory（理論）”という言葉の使用について、合計でScalaはHaskellに次ぐ2番目の順位となりました。

“abstract（抽象）”と”pure（純粋）”は他の2つの言葉より多く出現しているようです。また、”hardware（ハードウェア）”という言葉だけを見ると、Scalaはかなり順位を落とし6番目となります。





含まれる言葉/10,000コメント



私はこの結果が示す意味について、本当によく分かっているわけではありません。この記事を書いた著者自身も、この結果についての説明はわずか65単語で済ましていて、あまり追求していないようでした。この結果について、もっと深い考察を持っている方は下のコメント欄に意見をお寄せください！

これで今回の記事は終わりです。明らかに”非科学的”アプロ―チであることは否めません。しかし、エンジニアに喜ばれ、更により広く使われているJava、PHP、JavaScriptなどと比べて批判されることが少ない言語の中で、Scalaは実際に成功事例のある唯一のプログラミング言語のようです。オリジナルの記事はこちらに掲載されています。Tobiasがプログラミングの世界にもたらした貢献に感謝したいと思います。Tobiasは本当に素晴らしいギークです！

管理職・現場責任者への注記

皆さんの所属する組織がScala、Java、Akka、Play、Apache Sparkを使用して商用アプリの構築、デプロイを検討中でしたら、Typesafeのスタッフにコンタクトを取っていただくことをお勧めします。ご希望でしたら、私宛に直接ご連絡していただいても大丈夫ですし（oliver(@)typesafe.com）、Typesafeの営業宛てにご連絡をいただいても結構です。

営業部門へのお問い合わせはこちらから