【プログラミング言語クイズ】Language Identification Quiz

[ソースコードを見てどのプログラミング言語なのかを特定するクイズ「Language Identification Quiz」](https://gigazine.net/news/20170714-language-identification-quiz/)
というものを見つけたのでやってみた。

<blockquote class="twitter-tweet" data-lang="ja"><p lang="en" dir="ltr">I just did the <a href="https://twitter.com/triple_byte?ref_src=twsrc%5Etfw">@triple_byte</a> programming quiz and got 87%! See if you can beat my score here: <a href="https://t.co/NCoreBcmPV">https://t.co/NCoreBcmPV</a></p>&mdash; YOS G-spec (@yosgspec) <a href="https://twitter.com/yosgspec/status/1132967790011281408?ref_src=twsrc%5Etfw">2019年5月27日</a></blockquote>

結果はこんな感じ。
問題は毎回固定っぽいので1問ずつ振り返る。

一応、まだやっていない人はネタバレになるので注意。

## 1問目
![Q1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/683b5f91-c96d-0084-50a2-467508ff077b.png)
document.getElementByIdから一目瞭然。
DOMと言えばJavaScript。

## 2問目
![Q2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/d0f6fa12-71b8-bf6a-0c78-9581837de593.png)
def - end構文と言えばRubyってことでRuby。
Prolog(文法の知らない言語)が万が一その特徴を持った言語の可能性もあったが。

## 3問目
![Q3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/9d260e02-1487-f1d0-8208-e9db33f47d93.png)
using文とLinq、Console.WriteLineからC#と特定可能。

## 4問目
![Q4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/2416a185-87bb-12d1-9a41-b43ffd074a43.png)
知らない言語。
thisでなくselfであることからJavaを除外。
書かれている内容が静的言語っぽいのでPerlを除外。
ポインタっぽい*が見えたのでObjective-Cと消去法で決定した。

## 5問目
![Q5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/35ff04f2-6d39-4fea-7a54-81276c36020b.png)
$記号を含む変数の存在からPerlとPHPの2択。
Perlはもっとごちゃごちゃになりそうという偏見からPHPを選んだ。

## 6問目
![Q6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/49028b77-4bf9-bb77-10d4-2ff235a8c5dc.png)
知らない言語。
TypeScriptはほぼJavaScriptになるはずなので除外。
型宣言が後置だった気がするみたいなおぼろげな記憶からDartを選んで間違えた。
Dartの型宣言はCと同じく前置だったので完全なる勘違い。

## 7問目
![Q7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/42c7c2e9-3a5b-261e-c669-0b74193a955b.png)
知らない言語。
完全に勘だけど関数宣言がfnだった気がするみたいな感じでRust正解。

## 8問目
![Q8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/b3431fca-e47c-1dbe-6712-2aec7235bc14.png)
defnで関数宣言されるLisp系言語と言えばClojure。
CommonLisp/EmacsLispはdefunで、Schemeがdefine。

## 9問目
![Q9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/2716b14a-a204-8a70-f08e-48dccc5935da.png)
知らない言語。
最も読んでいて理解できない。
CommonLispとRustはとりあえず除外できるが…って感じ。
勘で当てた。

## 10問目
![Q10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/00936380-1ba3-3ef7-5943-648f57fcb114.png)
<-による代入文が印象的。R言語。

## 11問目
![Q11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/5fad90cf-1f6c-e458-6399-a862a9b78a78.png)
関数型言語っぽい感じでガードがあるのでHaskellかなー的な。
Haskellは2回入り口で挫折した。

## 12問目
![Q12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/320ec6d9-5f45-3b35-7d0a-d45ce1522d89.png)
$記号でPHPとPerlに絞ってelsifからPerlだったかな?って感じ。

## 13問目
![Q13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/a61be640-c9dd-b06c-8f4f-d91b3c3e959e.png)
知らない言語。
Perl、Objective-C、C#はC系の言語なので消去法でProlog。

## 14問目
![Q14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/c1368394-554c-0d60-9f24-b148f15aa5d9.png)
begin - endからPascal系言語だって特定してAdaを選んでしまった。
VHDLって初めて見た。

## 15問目
![Q15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/147573/31dddaa2-b4c2-a283-190f-8a35cff7e576.png)
なんかビジュアルっぽい良くわからない言語。
PietとGLSLにとりあえず絞って勘で選んでPietと当てた。

## あとがき
結果、勘だらけだったけど初見13/15問正解でした。
感想としてはまだまだ知らない言語も多いなぁという感じ。
使わない言語でも言い当てられるくらいの知識があったらうれしいね。