この記事は、Altplus Advent Calendar 2016 の記事です。
http://qiita.com/advent-calendar/2016/altplus
こんにちは、id:iandoです。初投稿です。
先日Github上の言語別データとして、ObjectiveC と Swift の比較を行ったときのことをこちらに記載します。
利用させていただいたサイトは GitHub Archive で、GitHubの公開リポジトリの情報をクロールして、データを記録し、解析用に提供しているプロジェクトになります。
ソースも公開されているようです。
https://github.com/igrigorik/githubarchive.org
GitHub Archive のデータは、BigQuery の public data としても公開されているので、そちらを利用させていただきました。 https://bigquery.cloud.google.com/table/githubarchive:day
言語別にリポジトリ数を抽出するために、language で group by します。
select language,count(*) from ( SELECT json_extract(payload,'$.forkee.language') as language FROM (TABLE_DATE_RANGE([githubarchive:day.], TIMESTAMP('2016-01-01'), TIMESTAMP('2016-10-01') )) ) group by language;
抽出結果として、降順に表示すると以下のようになります(途中まで表示)。
language | f0_ |
---|---|
227808302 | |
null | 6615042 |
"JavaScript" | 86492 |
"Java" | 53886 |
"Python" | 40443 |
"Ruby" | 28494 |
"HTML" | 23450 |
"PHP" | 20727 |
"CSS" | 14117 |
"Objective-C" | 13465 |
"Shell" | 13099 |
"C++" | 12520 |
"C" | 10746 |
"C#" | 9687 |
"Go" | 9492 |
"Swift" | 7771 |
空文字列とnullが一番多くてあまり正確ではない点もありますが、相対的なある程度の比較にはなるかもしれないので、このやり方で時系列ごとにまとめてみると以下のようになりました。
GitHub 上で公開されているデータを使って、利用率の高いプログラミン言語等の定期的なシェアや、他色々な分類で状況がわかるようなサービスが公開されていますが、GitHub Archive では BigQuery さえ使えれば簡単に自分の好みのカスタマイズ方法でデータが得られることがあるので、何か調査したいことがあればお勧めできます。