日本の Twitter ユーザーが好きな言語・嫌いな言語2019


## 概要
2019年10月5日、(おそらく) このツイートを端緒として、多くのエンジニアが自身のプログラミング言語歴や好みについて語るという試みがなされ、10月14日には自然言語クラスタを巻き込んだこともあってかトレンド入りを果たしました。
<blockquote class="twitter-tweet" lang="ja"><p>1. 最初の言語: Basic
2. 難しかった言語: Javascript
3. 一番使っている言語: C++ / C#
4. 嫌いな言語: HTML / CSS
5. 一番好きな言語: C++
6. 初心者にオススメ: Unity
他の人のも聞いてみたいですね。</p>&mdash; たつなみ (@qrostar) <a href="https://twitter.com/qrostar/status/1180285901387075584?s=20">2019, 10月 5</a></blockquote>

本記事では、10月18日18時までに集まった1480件のツイートの集計結果を示したいと思います。なお結果にはプログラミング言語ではなくマークアップ言語も含まれていますが、票数が多かったこともありそのままにしてあります。ご了承ください。

## 集計方法
2019年10月18日18時に「最初の言語　難しかった言語」をクエリとして Twitter Search API を叩きツイートを取得しました。このうち、自然言語クラスタによるつぶやきを除くため、[自然言語の一覧](https://ja.wikipedia.org/wiki/%E8%A8%80%E8%AA%9E%E3%81%AE%E4%B8%80%E8%A6%A7) に掲載されている言語を１つも含まないツイート 1480 件を対象としました。複数回答も集計に含めています。
## 結果
グラフには得票数が20以上のものを表示しました。
### 最初の言語
![FirstLang.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/34c8f1f5-e1c2-5521-8c6e-276ecf209c3b.png)

単に「BASIC」と回答しているものから詳しい名称を示しているものまであり集計に困ったので、この設問では全てひっくるめて「BASIC」としてまとめました。内訳としては VB 系 (VBA, VBS 含む) が多くみられたほか、「N88-BASIC」「ポケコン BASIC」「ファミリーベーシック」「SMILEBASIC」「10進BASIC」「MSX-BASIC」など多種多様でした。COBOL には時代を感じますね。

### 難しかった言語
![DifficultLang.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/9faaf988-736b-f282-143c-13fd28a3e4c9.png)

C 系言語、特に C++ の難しさが際立ちます。ここで Lisp は Common Lisp, Scheme, Clojure, Racket, Emacs Lisp あたりを、HDL は VHDL と Verilog-HDL をまとめたものです。

### 一番使っている言語
![FreqUsedLang.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/e1f61ee0-7bf3-ade8-6f8c-d09279daa4ec.png)

昨今の機械学習ブームもあってか Python が好調ですが、組み込み系の言語も根強い人気を誇っています。世界全体でのデータとの比較は [Stack Overflow Developer Survey 2019](https://insights.stackoverflow.com/survey/2019#technology-_-programming-scripting-and-markup-languages) をどうぞ。

### 嫌いな言語
![LangIHate.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/10b161e7-3784-a8be-1f35-93c9cffb067f.png)

Visual Basic が上位に入っているのは [Stack Overflow Developer Survey 2019](https://insights.stackoverflow.com/survey/2019#technology-_-most-loved-dreaded-and-wanted-languages) と同様の結果ですが、JavaScript がここまで激しく嫌われているのは日本 (のこのタグ参加者) 特有の現象なのかもしれません。(この話題は [JavaScriptを悪いプログラミング言語だと考えるプログラマーが多いのは何故ですか？ - Quora](https://jp.quora.com/JavaScript%E3%82%92%E6%82%AA%E3%81%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%A0%E3%81%A8%E8%80%83%E3%81%88%E3%82%8B%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E) でも議論がなされていました)。

### 一番好きな言語
![LangILove.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/7eb03a16-2ef4-8ce1-3205-7b937375e2bd.png)

こちらは票が割れました。[Stack Overflow Developer Survey 2019](https://insights.stackoverflow.com/survey/2019#technology-_-most-loved-dreaded-and-wanted-languages) では Rust が大人気ですが、この調査では７位に留まっていることから考えると日本ではまだ十分に普及が進んでいないのかもしれません。それにしてもみんな C# 好きすぎでは……？

### 初心者にオススメ
![LangForBeginner.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/807583c9-d8d3-e736-e0b4-95be7b29d564.png)

これに関しては、「何をやりたいかによる」「とりあえず何か動かしたいなら Python などの動的型付け言語、しっかり勉強したいなら C」など条件付けをしている回答も多くみられました。ここでも C# が２位に食い込んでいます。

### おまけ: 難しいのに嫌われていない言語
文法が気持ち悪いといった理由ではなく、難解な言語を単にその難解さを理由に嫌う人 (特に経験の浅いエンジニア？) がいるからか、「難しかった言語」上位の言語は「嫌いな言語」にもランクインしている傾向があります。ここでは、”「難しい言語」での得票数  / 「嫌いな言語」での得票数” という比を計算することにより、「難しいのに嫌われていない」傾向を定量化してみようと思います。
![DifficultButNotHated.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/100205/f4eb8aa3-e0c7-7d5c-2238-70e2d18b1f8f.png)
比が２以上のものを図示したところ、上のようになりました。特に Rust と Haskell に関してはプログラミング初心者の参入があまり進んでいないような印象があり、それが上位へのランクインにつながっているのかもしれません。ここで、ML は SML と OCaml をまとめたものです。

## 追記
@jsakamoto さんからのご指摘で、今回の試みが以下の英語ツイートから開始したことを知りました。
<blockquote class="twitter-tweet" lang="ja"><p>1. First language: Basic / Java
2. Had difficulties: Java
3. Most used: JavaScript / Python
4. Totally hate: Java
5. Most loved: Go / Python
6. For beginners: Python / Ruby

What about you?</p>&mdash; Vx. Super Di 🦄 (@cotufa82) <a href="https://twitter.com/cotufa82/status/1179601883448655874?s=20">2019, 10月 3</a></blockquote>
英語ツイートに関して本記事と同様の解析を行ったもの [Twitter’s Feelings About Programming Languages · Garrick Aden-Buie](https://www.garrickadenbuie.com/blog/tweet-poll-programming-languages/) も見つけたので、日本との傾向の違いを比較してみると面白そうです。

## 感想
Python が流行っているのは予想通りとして、結果的に C# の宣伝記事のようになってしまったのは少し意外でした。今回対象となったユーザーの職種や年齢などは調査していませんが、興味のある方は試してみると面白いかもしれません。筆者自身が触ったことのない言語も多く分類などの点について不適切な部分もあるかと思いますので、誤りなどご指摘いただければありがたいです。