Octoverse 2018 (2018年10月時点の統計情報) – 上位プログラミング言語

Image of Thomas Elliott

この記事は、GitHubの活動、オープンソースコミュニティの動向、さらにGitHubのデータサイエンスチームによる洞察によって作成された2018年のOctoverse(オクトバース)レポートに基づいたシリーズの一部です。

GitHubにホスティングされているテクノロジーの中核はプログラミング言語です。今年のOctoverseレポートでは、GitHubで行われているさまざまな開発活動の傾向​​を分析しました。この記事では、なぜ特定の言語が人気なのか、どの地域でその言語が多く利用されているのかについて詳しく説明します。

プログラミング言語の人気を測定する方法は数多くありますが、Octoverseでは主要言語がタグ付けされた公開リポジトリとプライベートレポジトリに対する、ユニークなコントリビュータの数を使用しました。さらに、主要言語がタグ付けされたリポジトリの数も使用しました。

上位プログラミング言語(リポジトリ数)2008年〜2018年

repo

今日、JavaScriptで書かれたリポジトリが最も多く作成されています。過去10年にわたり、リポジトリの数は着実な増加が見られ、2011年以降では安定した増加が見て取れます。この時点で、JavaScriptで書かれたリポジトリは約100万件にのぼり、2009年にリリースされたNode.jsなどの新しいJavaScriptサーバーは、開発者がクライアントとサーバーで同じコードを使用できるようにしました。

上位プログラミング言語(コントリビュータ数)2018年9月30日現在

contributor

コントリビューションが多いパブリックおよびプライベートリポジトリにおいても、JavaScriptは最も頻繁に使われている言語です。この傾向は、世界各地のあらゆる規模の組織に当てはまります。

その一方で、新しい言語も登場しています。 昨年、すべての地域でパブリック、プライベート、オープンソースのリポジトリのトップ10のプログラミング言語としてランクインしたのが、TypeScriptです。また、DefinitelyTypedのようなプロジェクトでは一般的なJavaScriptライブラリをTypeScriptとともに使用できるようサポートしており、TypeScriptの利用が広まっています。

また、いくつかの言語の人気が低下していることも分かりました。 Rubyの利用はここ数年で減少しています。 Rubyでコーディングするコントリビュータの数はまだ増えていますが、JavaScriptやPythonのような他の言語の利用がますます加速しています。新しいプロジェクトにRubyが採用されることはあまりなく、特に個人ユーザーや小規模な組織が所有するプロジェクトではJavaScript、Java、またはPythonが利用されることが多いことは、新たな発見と言えます。

地域別上位プログラミング言語(コントリビュータ数)2018年9月30日現在

geo

過去12ヶ月間を通して、地域に依存する言語の人気には、大きな変化は見られませんでした。しかし、TypeScriptは北アメリカとヨーロッパよりも南米とアフリカで人気のある言語です。これは、アフリカや南米の開発者コミュニティが比較的新しいためだと考えられます。昨年、アフリカおよび南アメリカでコントリビューションが行われたリポジトリは、平均してみると北米とヨーロッパのそれよりも新しいものです。そして恐らく、新しく作ったリポジトリへコントリビューションするユーザーは、新しい技術を使おうとしていることの現れなのかもしれません。

急成長している言語(コントリビュータ数)2018年9月30日現在

fast

PowerShellは、大企業の多くのプロジェクトで使用されており、利用が急成長しています。同様に、大規模な組織でよく利用されるGoはパブリック、プライベートの両方のリポジトリで利用が増加しています。今年のオープンソースリポジトリでの利用は、9位です。Kotlin、TypeScript、およびRustなど、型安全性と相互運用性に重点を置いた静的型付け言語も急速に利用が増えています。

型安全性

Pythonを除いて、静的型付けが増加しています。これは、大規模アプリケーションを開発する際に、個々の開発者やチームに安全で効率的な手段を提供するためだと考えられます。TypeScriptは型を明示的に書かなくてもある程度の安全性を提供してくれますし、Kotlinは特にインタラクティブに型安全なプログラムを書く手段を提供してくれます。

相互運用性

TypeScriptがランキングを上げた理由のひとつは、JavaScriptと共存して統合できるためです。 RustはCとの相互利用性、KotlinはJavaとの相互利用性から、ランキングを上げています。Pythonの汎用性と相互運用性は素晴らしく、たとえば、開発者はPython APIをSwiftから直接呼び出すことができます。

言語の相互運用性は、既存のコミュニティから新しい言語の利用が広がるだけではなく、違うコミュニティと混在しながら発達することが見て取れます。例えば、昨年にはKotlinがAndroidプラットフォーム上で第一サポート言語になっています。

オープンソース

これらの言語はオープンソースプロジェクトでもあり、GitHubで管理されています。 Kotlinのような新しい言語のためにコミュニティが進化し、質問に答え、リソースを作成するからこそ開発者は開発を継続できるのです。

このようなレポートに興味があるようでしたら、Octoverseの他の記事も読んでみてください。データサイエンスチームが分析したより詳細な情報を得るには、GitHubブログをご覧ください。