ソフトウェア開発者に焦点を当てた分析企業のRedMonkが、デベロッパーに人気のあるプログラミング言語をランキング化した「プログラミング言語ランキング:2023年1月版」を発表しました。プログラミング言語ランキングは、各プログラミング言語がGitHub上でどの程度利用されているかと、Stack Overflow上でどの程度言及されているかをベースに算出されています。

The RedMonk Programming Language Rankings: January 2023 - tecosystems

https://redmonk.com/sogrady/2023/05/16/language-rankings-1-23/



プログラミング言語ランキングでは、GitHubが毎年発表している最も使用されたプログラミング言語ランキングと同じように、GitHubのプルリクエストをベースに各リポジトリで使用されているプログラミング言語を分析。なお、フォークしたリポジトリは調査対象から除外しています。

Stack Overflowの場合はデータエクスプローラーツールを利用することで必要な情報を収集しているそうです。そのため、MathematicaのようなStack Overflowの外部にコミュニティを持つプログラミング言語は、このランキングでは過小評価されることとなります。

RedMonkはGitHubとStack Overflowが調査対象となった理由を、「分析に利用できるコミュニティは多数ありますが、GitHubとStack Overflowは第一にサイズ、第二に分析に必要なデータが公開されているという点で他よりも優秀です」と説明しており、同じようなランキングの作成を計画している人には「別のソースを利用して独自の分析を行うことを推奨します」とアドバイスしています。

以下は縦軸がStack Overflow上でのプログラミング言語の人気度、横軸がGitHub上でのプログラミング言語の人気度を示したグラフです。



これをベースに作成した「プログラミング言語ランキング:2023年1月版」のトップ20は以下の通り。

1位:JavaScript

2位:Python

3位:Java

4位:PHP

5位:C#

6位:CSS

7位:TypeScript

7位:C++

9位:Ruby

10位:C言語

11位:Swift

12位:Shell

12位:R言語

14位:Go

14位:Scala

16位:Objective-C

17位:Kotlin

18位:PowerShell

19位:Rust

19位:Dart

ランキングはあくまで順位表であり、ユーザーの興味を引くためにランク付けしたものであるとRedMonkは主張。加えて、ランキングが下にいけばいくほどプログラミング言語をランク付けするためのデータが少なくなる点にも注意が必要と言及しています。

RedMonkは「プログラミング言語を分析すると、大規模言語モデル(LLM)ベースのツールの使用が爆発的に広まっていることがわかります。これらのツールによる大きな変化はまだ見られませんが、影響をおよぼし始めている可能性は十分に考えられます。影響の一部は、現時点でLLMが一部のプログラミング言語で頻繁にトレーニングされているという事実からも明らかです」と記し、OpenAIのGPT-4やGoogleのPaLM 2といったLLMが流行したことで、LLMで利用されるプログラミング言語にも偏りが生じ始めていると指摘。

ただし、新しいプログラミング言語など、馴染みのないテクノロジーを手軽に活用できるようになるのもLLMの強みであるため、「新しいプログラミング言語の参入障壁が低くなり、マイナーなプログラミング言語がより広く利用されるようになる可能性もあります」とRedMonkは記しています。

なお、記事作成時点のプログラミング言語ランキングにおけるLLMの影響はあくまで限定的で、RedMonkは「現状はプログラミング言語環境はますます静的になっています。プログラミング言語ランキングは追跡できるほどの大きな変化がほとんどないくらい静的です」とも記しています。



RedMonkは今回のランキングをベースに注目すべきプログラミング言語を複数挙げています。

◆Ballerina

クラウド環境でサービスを組み合わせて使用するために、2017年にWS02がリリースしたオープンソースのプログラミング言語がBallerinaです。Ballerinaは数回前のランキングに登場して以来、80位台で安定してランクインしています。HCL(45位)やPuppet(39位)のような構成重視のプログラミング言語と肩を並べるほどの利用率とは言い難いため、プログラミング言語としての人気を高めるためにリソースを投入すべきタイミングだとRedMonkは指摘。

◆Clojure

2014年から2017年にかけてはトップ20の後半にランクインしていたClojureですが、最新のランキングでは27位まで後退しています。ただし、一時はClojureよりも上位にランクインしていたVisual Basic(30位)とCoffeeScript(31位)を上回っています。ClojureはGroovyやJRubyなどのJVMベースのJava代替言語のひとつであったLISPの方言で、Scalaを除くほとんどの代替言語と同様に、このランキングで着実に順位を落としています。なお、Clojureは他のプログラミング言語との競争だけでなく、同じJVM言語の中でも急速な成長を遂げているKotlinとの競争もあります。

◆Dart/Kotlin/Rust

Kotlinの成長は、DartやRustと同じく成長率が鈍化してきています。いずれの言語もトップ20の最後尾に食い込んでいるものの、そこで足踏みしているというのが現状。プログラミング言語全体の変化がかなり乏しく、ランキングの上位に食い込むことは非常に難しくなっていることは明らかですが、RedMonkは「3つのうちどれかひとつが他の2つの言語と袂を分かち、再び上昇気流に乗ることができるかどうか興味深いところ」といずれかの言語の躍進を期待しています。なお、これらの言語は機能的には全く異なるものであり、同じワークロードを想定したものではありません。そのため、「あくまでランキング内で類似した成長を遂げてきたことから同じグループとしてまとめて言及した」とRedMonkは説明しています。

◆Go

KotlinやRustのようなバックエンド言語が急速に成長していることを考えると、「Goが牽引力を失い始めるのではないかという疑問もあった」とRedMonk。しかし、Goはランキングを1つ上げており、その地位を盤石なものとしています。しかし、前述のKotlinやRustと同様、長らく同じような順位に留まり続けていることは確かなため、「これ以上ランキングを駆け上げることができるのか、それともこれが限界点なのかはまだわからないままです」とRedMonkは記しています。

◆Objective-C

前四半期のランキングでは珍しく躍進を遂げたObjective-Cですが、今回のランキングでは4つ順位を落とすこととなりました。これは動きの上下がかなり慎重になりがちな同ランキングでは「大きな下落」だそうです。しかし、Objective-Cは確立された大規模なコードベース以外では、成長の可能性を主張する要素がほとんどないとRedMonkは指摘。最大の支持者であるAppleは、より構文的に親しみやすいSwiftをすでに後継として指名しています。ただし、Objective-Cのコードの大部分が消えるわけではないため、同ランキングにおけるObjective-Cの衰退は緩やかなものになるだろうとRedMonkは推測しています。



なお、RedMonkが「我々のランキングがより広範で一般的なプログラミング言語の利用率を表すものではありません。ランキングは将来利用されるプログラミング言語を予測することができると我々が信じている2つの母集団(GitHubとStack Overflow)間の相関関係を調べるものに過ぎません。ただし、調査の価値はあります」と記している通り、単純にプログラミング言語の利用率や人気度を示したランキングではないという点には注意が必要です。