今回はGithubのシンタックスハイライト対応言語一覧1を使って,
- Qiitaでの言語別記事数とタグフォロワー数CSVを作成(2020年03月14日時点)
- ソートしランキングにする
ことを考える.
結果
- 列名:
ランク,言語,記事数,フォロワー数
- 全体の結果はここ
- 以下に示すのは結果を
head
したもの
- 以下に示すのは結果を
記事数Top102
articleRank10.csv
ランク,言語,記事数,フォロワー数
001,Python,38538,71962
002,JavaScript,32653,72158
003,Ruby,26104,40486
004,PHP,19102,44786
005,Java,14326,47284
006,CSS,7329,46345
007,Cpp,7123,30398
008,HTML,6518,55321
009,Objective-C,4030,19990
010,Scala,3094,12501
読者数Top103
followRank10.csv
ランク,言語,記事数,フォロワー数
001,JavaScript,32653,72158
002,Python,38538,71962
003,HTML,6518,55321
004,Java,14326,47284
005,CSS,7329,46345
006,PHP,19102,44786
007,Ruby,26104,40486
008,Cpp,7123,30398
009,C#,3042,26228
010,Objective-C,4030,19990
手段
2パートです.
CSV作成パート
qiitaLangCSV
$ curl -s"https://raw.githubusercontent.com/github/linguist/master/lib/linguist/languages.yml" |
egrep -o'^[^\ \#][^:]+' | sed'1d;y/+/p/'| while read i
do echo"$i,$(
curl -s"https://qiita.com/tags/${i,,}" |
tr-d\\n | grep-oPm1'(?<=<span class="tsi-Stats_count">)\d+')" | tr\\n ,;echo
done | sed's/\([0-9]\),$/\1/g'> result
ランキング作成パート
- もし数値が同じであればもうひとつの数値で比較する
makeRank
$ head=ランク,言語,記事数,フォロワー数
$ (echo$head;sort-t, -rnk2-rnk3 result | nl-nrz-s, -w3 | head)> articleRank10.csv
$ (echo$head;sort-t, -rnk3-rnk2 result | nl-nrz-s, -w3 | head)> followRank10.csv
ちなみに
- タグがない言語は全545言語中40%の218言語
Terminal
$ cat result | tee>(wc-l)>(grep-c",,") 1>/dev/null | nl-nln
1 218
2 545
$ cat result | tee>(wc-l)>(grep-c",,") 1>/dev/null |
tr\\n / | sed's/^/scale=1;/;s/.$/*100\n/' | bc
40.0
- タグはあるが記事もフォロワーもいない言語は15言語
Terminal
$ grep",0,0" result
CSON,0,0
CWeb,0,0
Cool,0,0
Eiffel,0,0
Fancy,0,0
Harbour,0,0
Jison,0,0
Jolie,0,0
Nit,0,0
Nu,0,0
Raku,0,0
STON,0,0
Tea,0,0
UrWeb,0,0
XC,0,0
$ grep-c",0,0" result
15
- タグはあり記事もあるがフォロワーがいない言語は64言語
Terminal
$ grep-P'(?<!,0),0$' result | head
ABNF,1,0
APL,27,0
ASN.1,5,0
ApacheConf,1,0
Batchfile,2,0
Befunge,1,0
CLIPS,2,0
COLLADA,5,0
Chapel,2,0
Cycript,2,0
$ grep-cP'(?<!,0),0$' result
64
- タグはあり記事はないがフォロワーがいる言語は0言語
Terminal
$ grep-P',0,[^0]+$' result
$ grep-cP',0,[^0]+$' result
0
- タグがあり記事もフォロワーもいる言語は248言語
Terminal
$ grep-vP',0?(,|$)' result | head
4D,5,3
ABAP,46,34
ANTLR,12,7
ASP,43,14
ATS,35,2
ActionScript,249,247
Ada,27,10
Agda,29,18
Alloy,59,26
AngelScript,5,1
$ grep-vPc',0?(,|$)' result
248