GitHubの活動、オープンソースコミュニティの動向、さらにGitHubのデータサイエンスチームによるの洞察によって作成された年次レポート「The State of Octoverse 2018」(略称:Octoverse/オクトバース)(
https://octoverse.github.com/ ) に基づいた情報をシリーズとしてお届けします。
GitHubにホスティングされているテクノロジーの中核は、プログラミング言語です。今年の[Octoverse](
https://octoverse.github.com/ ) レポートでは、GitHub上のさまざまな開発活動の傾向を分析しています。なぜ、ある特定の言語の人気が高いのか、どの地域でその言語が多く利用されているのかなどを、詳しく説明します。
プログラミング言語の人気を測定する方法は数多くありますが、Octoverseでは主要言語がタグ付けされた公開リポジトリとプライベートレポジトリに対する、ユニークなコントリビュータの数、さらに主要言語がタグ付けされたリポジトリの数も使用しています。
## 上位プログラミング言語(リポジトリ数)2008年〜2018年
今日、リポジトリが最も多く作成されている言語が、JavaScriptです。過去10年にわたり、リポジトリの数は着実な増加を見せ、2011年以降も安定的に増加しています。分析時点において、JavaScriptで書かれたリポジトリは約100万件に到達しています。2009年にリリースされたNode.jsなどの新しいJavaScriptサーバーは、開発者がクライアントとサーバーで同じコードを使用できる仕様になりました。
## 上位プログラミング言語(コントリビュータ数)2018年年9月30日現在
コントリビューションが多いパブリックおよびプライベートリポジトリにおいても、JavaScriptは最も頻繁に使用されている言語です。この傾向は、世界各地のあらゆる規模の組織にも当てはまります。
その一方で、新しい言語も登場しています。 昨年、すべての地域でパブリック、プライベート、オープンソースのリポジトリのトップ10のプログラミング言語としてランクインしたのが、TypeScriptです。また、DefinitelyTypedのようなプロジェクトでは一般的なJavaScriptライブラリをTypeScriptとともに使用できるようサポートし、TypeScriptの利用が広まっています。
人気が低下しているいくつかの言語もあります。 Rubyの利用はここ数年で減少傾向にあります。 Rubyでコーディングするコントリビュータの数は未だに増加していますが、JavaScriptやPythonのような他の言語の利用がますます加速しています。新しいプロジェクトにRubyが採用されることはあまりなく、特に個人ユーザーや小規模な組織が所有するプロジェクトではJavaScript、JavaまたはPythonの利用が多いことは、新たな発見と言えます。
## 地域別上位プログラミング言語(コントリビュータ数)2018年年9月30日現在
過去12ヶ月間を通して、地域に依存するよる言語の人気には、大きな変化は見られませんでした。しかし、TypeScriptは北アメリカとヨーロッパよりも南米とアフリカで人気のある言語です。これは、アフリカや南米の開発者コミュニティが比較的新しいためだと考えられます。昨年、アフリカおよび南アメリカでコントリビューションが行われたリポジトリは、平均してみると北米とヨーロッパのそれよりも新しいものです。そして恐らく、新しく作成したリポジトリへコントリビューションするユーザーは、新しい技術を使う傾向の現れなのかもしれません。
## 急成長している言語(コントリビュータ数)2018年年9月30日現在
PowerShellは、大企業の多くのプロジェクトで使用されており、利用が急成長しています。同様に、大規模な組織でよく利用されるGoはパブリック、プライベートの両方のリポジトリで利用が増加しています。今年のオープンソースリポジトリでの利用は、9位です。Kotlin、TypeScript、およびRustなど、型安全性と相互運用性に重点を置いた静的型付け言語も急速に利用が増えています。
### 型安全性
Pythonを除いて、静的型付けが増加しています。これは、大規模アプリケーションを開発する際に、個々の開発者やチームに安全で効率的な手段を提供するためだと考えられます。TypeScriptは型を明示的に書かなくてもある程度の安全性を提供してくれますし、Kotlinは特にインタラクティブに型安全なプログラムを書く手段を提供してくれます。
### 相互運用性
TypeScriptがランキングを上げた理由のひとつは、JavaScriptと共存して統合できるためです。 RustはCとの相互利用性、KotlinはJavaとの相互利用性から、ランキングを上げています。Pythonの汎用性と相互運用性は素晴らしく、たとえば、開発者は[Python APIをSwiftから直接呼び出す](
https://github.com/tensorflow/swift/blob/master/docs/DesignOverview.md#python-interoperability) ことができます。
言語の相互運用性は、既存のコミュニティから新しい言語の利用が広がるだけではなく、違うコミュニティと混在しながら発達することが見て取れます。例えば、昨年にはKotlinはAndroidプラットフォーム上で素晴らしい言語だと認められました。
### オープンソース
これらの言語はオープンソースプロジェクトでもあり、GitHubで管理されています。 Kotlinのような新しい言語のためにコミュニティが進化し、質問に答え、リソースを作成するからこそ開発者は開発を継続できるのです。
「The State of Octoverse 2018」の全レポートは、こちら(
https://octoverse.github.com/ ) からご覧いただけます。他にも、データサイエンスチームによる興味深い分析は、GitHubブログをご覧ください。
https://blog.github.com/jp/
GitHub Blog
英語
https://blog.github.com/2018-11-15-state-of-the-octoverse-top-programming-languages
日本語
https://blog.github.com/jp/2018-11-20-state-of-the-octoverse-top-programming-languages/
Blog: The GitHub Blog (英語) The GitHub Blog (日本語)
Twitter:@github (英語) @GitHubJapan(日本語)