GitHubとソフトウェア開発のトレンド
私が毎日使うWebサービスのひとつにGitHubというものがある。私だけではなく世界中のソフトウェアエンジニアの多くがソフトウェア開発の中心的ななツールとして利用しているはずだ。
このGitHubが毎年Octoverse Reportというレポートを出している。これはGitHub内にある利用者や開発履歴のデータを基にソフトウェア開発のトレンドを提供してくれるものだ。もちろん使われているデータはGitHub上のものだけなのだが、GitHubは事実上のソフトウェア開発プロセスのデファクトスタンダードとなりつつある上、主要なオープンソースソフトウェアの多くはGitHub上でソースコードを公開している。そのためその年のソフトウェア開発のトレンドのようなものを知るのにちょうど良い上に、読み物としても面白い。
今回は去年に出たOctoverseレポートから面白かったデータをいくつか紹介してみたい。その前にまずはGitHubの紹介から。
目次
- GitHubとは
- Octoverse Report
- 国別アクティブユーザ数の推移
- 時間毎のアクティビティ
- 学生の活動
- 組織毎のオープンソース活動
- プログラミング言語のトレンド
- プログラミング言語毎のemoji利用
GitHubとは
GitHubとはソフトウェアのソースコードをホスティングしてくれるサービスだ。Gitという分散バージョン管理システムを利用してソフトウェアのバージョン管理と複数人での共同開発を支援してくれるプラットフォームだ。
GitHubとGitの使い方に関しては今回は割愛するが、ユーザ数とホストされているソフトウェアの多さもあり事実上のデファクトスタンダードとなっている。とりわけオープンソースソフトウェアの開発をする場合などは現在では必須のツールとなっていると言っても過言ではない。
GitHubの企業情報は上記に記載されている。GitHubは2008年に創業し、本社はSan Franciscoにある。私も一度オフィスを訪れたことがあるが、全社員の65%がリモートで働いているため、オフィスは意外と閑散としていた記憶がある。それでも社員はグローバルで800名ほどおり、日本にも法人がある。ユーザボリュームでいうと日本は米国に次ぐ規模のマーケットらしい。
GitHubは基本的には無料で使えるツールのため、主にEnterpriseビジネスで利益をあげており、ARR(Annual Recurring Revenue)で$200Mほどの売上がある。去年の10月にMicrosoftが$7.5Bで買収をしている。
AmazonやGoogleもGitHubの買収に関心を寄せたということなので、ビジネスとしてはかなり成長性のある分野なのだと思う。ユーザ数は3100万、 ホストしているソフトウェアリポジトリは9600万を超える。これだけの規模からみえてくるソフトウェアのトレンドはどんなものだろうか。
Octoverse Report
Octoverse Reportは毎年10月頃にGitHubが発表するレポートだ。"Octo-"という接頭辞はGitHubのマスコットキャラクターOctocatからとったものだと思われる。GitHubのグッズなどには必ずといっていいほど貼り付けられており、この足のたくさんあるヘンテコな猫を電車などで見かけたらそのひとはまずGitHubユーザだ。
こちらのレポートからまずは国別のアクティブユーザ数をみてみたい。
創業以来ずっとアメリカのユーザが多い。中国とインドも母数として多いので2,3位につけているのは当然といえば当然か。気になるのは近年ブラジルユーザが増えているところだろう。南米はソフトウェア産業のエリアで伸びしろのある国が多そうなので、これからソフトウェアエンジニアのボリュームが増えてくるのかもしれない。日本は一度下がっているが、また去年辺りからユーザが増え始めているようだ。
この時間毎のアクティビティも面白い。
青がPrivateリポジトリでの活動、赤と黄色がオープンソースやパブリックになっているリポジトリでの活動だ。タイムゾーンは調整してある。これを見ると明らかに日中仕事でPrivateな活動を行って、家に帰ってからオープンソースや趣味の開発をしているように見受けられる。活動のピークが夕方頃なので、比較的スタートが遅い人が多いのかもしれない。
私の生活パターンと同じだ。
平日にしきれなかった趣味の開発やオープンソースでの活動は休日にもおこなっているようだ。活動量としては当然平日ほどではないが、GitHubユーザは積極的に土日にコードを書いていることが伺える。
GitHubは学生用にStudent Developer Packというプログラムを用意している。これは学生に有償ソフトウェアやクラウドサービスを無料で提供あるいはディスカウントするプログラムだ。これのおかげで学生は自らの学習に既存のソフトウェアプラットフォームを利用しやすくなる。
現在ではこのプログラムを利用する学生は110万人ほどおり、1万8000校以上の学校がGitHubを講義などに利用しているらしい。私が行っているジョージア工科大学の修士プログラムでもソースコードの配布や提出にGitHubを利用している講義がある。仕事で利用しているものと同じなのでとても課題をスムーズにこなすことができる。日本でもプログラミングが義務教育で行われるらしいので、こういったプログラムを積極的に利用していけるとよいのかもしれない。
組織毎のオープンソース活動のデータも載っている。 GitHubを買収したMicrosoftがトップにきている。最近、Microsoftはオープンソースコミュニティへの貢献を積極的に行っておりGitHub上にMicrosoftの既存のソフトウェアも多くホストさせている。
いまではあのMSDOCのソースコードも実はGitHubにのっていたりする。
このようなGitHub上でのMicrosoftのプレゼンスを感じる要素がもうひとつある。それが利用されているプログラミング言語だ。JavaやJavaScriptが上位にくるのはここ何年ものトレンドだが、この一年で大きく利用者を増やした言語がTypeScriptだ。
TypeScriptはMicrosoftが中心となって作っているJavaScriptの上位言語だ。TypeScriptで書かれたプログラムは型システムをもっており、コンパイル時に型チェックを行うことができる。コンパイルはTypeScriptをJavaScriptに変換するだけなので、既存のランタイム(nodejsやブラウザ)で動かすことができる。つまり既存の実行環境を使いつつ、より安全で大規模プロジェクトに適したプログラムを書くことができる。
私もTensorFlow.jsの開発でTypeScriptを使っているが、平易な文法と既存のJavaScript実行環境の資産を利用できるという点で気に入って書いている。来年は更に順位をあげているかもしれない。
最後にちょっと着眼点の面白いレポートを紹介したい。こちらはプロジェクト毎のよく使われている絵文字をまとめたもの。GitHubではバグチケットやコメントに絵文字を使うことができる。利用プログラミング言語毎に明らかに他と比べてよく使われる絵文字があるようにみえる。例えばRubyのプロジェクトだとハートマーク(❤)が他の言語のプロジェクトに比べてよく使われているようだ。プログラミング言語毎のコミュニティのカラーの違いもここでは見られるのかもしれない。
C#で👎が多用されているのはどんな理由があるのだろうか。
ここで紹介してきたOcroverse Reportの詳細はこちらに載っている。他にも様々なデータが載っているのでもし興味があれば覗いてみてほしい。
お読みいただきありがとうございます。もしよければスキやシェアしていただけると大変うれしいです!