世界を動かす技術を、日本語で。

2025年の主要プログラミング言語

概要

  • プログラミング言語人気ランキング の測定がAIの普及で困難化
  • Python が依然としてトップ、 JavaScript は順位を下げる傾向
  • AIアシスタント の利用増加で公開データからの人気測定が難しくなる問題
  • AIの進化 により言語選択の重要性が低下し、新言語の登場が困難になる可能性
  • 今後のプログラミング言語の未来 と人気指標の再定義が必要

プログラミング言語人気ランキングの現状と変化

  • 2013年から毎年 人気プログラミング言語ランキング を発表
  • IEEE会員の関心を反映した「Spectrum」ランキングでは Python が1位を維持
  • JavaScript は昨年3位から6位に低下、AIの影響が示唆
  • 「Jobs」ランキングでも Python が1位に上昇、 SQL スキルの価値も依然高い
  • 人気の測定には Google検索数、Stack Exchange質問数、GitHub活動量 など複数の指標を統合

AIの普及による人気測定の困難化

  • プログラマーは 公開フォーラム よりも ChatGPTやClaude などのLLMを利用
  • AIアシスタントの活用で 質問投稿数 が減少、Stack Exchangeでは前年比22%まで低下
  • 公開データからの人気測定が 根本的に困難 になる傾向
  • 新たな指標の模索や 直接的な開発者調査 の必要性

AI時代のプログラミング言語の意味の変化

  • AIアシスタント の発展で言語の細部への関心が低下
  • コードの大部分をAIが生成し、 言語選択の重要性が希薄化
  • かつては 用途ごとに適した言語選択 が必要だったが、AIは任意の言語でコード生成可能
  • 多くの開発者にとって 使用言語は些細な違い になる可能性

新言語の誕生とAIの影響

  • かつては 個人や少人数チーム による新言語の普及が可能だった
  • AIは 大量の学習データ を必要とし、利用者が少ない新言語はAI生成の質が低下
  • 新言語の普及障壁 が高まり、現行言語の人気が固定化される可能性

プログラミング言語の未来とプログラマーの役割

  • 高水準言語は 抽象化と安全性 を重視して発展
  • AIが 中間言語への直接変換 を実現すれば、高水準言語の必要性が低下も
  • 今後は アーキテクチャ設計やアルゴリズム選択 が開発者の主な役割
  • コンピュータサイエンスの基礎知識 がより重要に

これからの人気指標と問いかけ

  • プログラミングは 1950年代以来の大変革期 に突入
  • AIによるコード生成が今後も主流となる見込み
  • 新時代における人気指標 や測定手法の再検討が必要
  • 読者に対し「 人気とは何か?どんな指標が有効か?」という問いかけ

補足:

  • 今後のランキングやプログラミング言語の人気指標については 継続的な議論と見直し が求められる状況

Hackerたちの意見

JavaScriptが2位になると思ってたけど、どうやらTypeScriptが票を奪ったみたいだね。個人的にはJavaScriptとTypeScriptはかなり近いから、数字を足してもいいと思ってる。

そうだね、合算するのが真の2位になると思う。

同意だね。いくつか統合してほしい言語があって、その中にはBEAM系の言語も含まれてる。

それからJavaとKotlin、CとC++もアプリ化しよう。おお、JSとTSは2位じゃないんだ!

Haskellがランクインしてるだけでも嬉しいよ!... LabViewと同じくらいのレベルだけど(うーん)。記事自体はあんまり面白くないかな。

HaskellがLabViewと比べられるのはイライラするよね、どんな文脈でも(笑)。

Haskellは少なくとも楽しいよ。お気に入りのJuliaも今年ランクインしたし... ユーザーがゼロじゃないってことは、楽しい言語に希望があるってことだね。新しいIntelとNVIDIAのRTX SoCの契約で、次の数年でPythonとC++がそのリストを支配することが期待できるね。=3

バックエンド開発者として(主にフィンテックで働いてるけど)、移行するターゲット言語が見つからなくて変な感じ。NodeやRubyをしばらく使った後、静的型システムが恋しい。TypeScriptは非厳格性を許可するオプションがあって制限されてたし。目を引くものがないんだよね、Javaや.NETのエンタープライズ系企業か、Goみたいに新しいけど設計上古臭く感じるものばかり。Rustは楽しそうだけど、自分のバックグラウンドとはあまり合わない。何かアドバイスある?

janestreetのやり方を参考にして、OCamlを使ってみて。Rustも汎用言語だから、ほぼどんな問題にも使えない理由はないよ。

Javaは、ゆっくりだけど、文法的に良い言語に成長してきてるし、多くの中小企業の基盤になってるよ。JSやRuby、Python以外を使ってる小さな会社は見つけるのが難しいかも。これらの会社は、パフォーマンスよりもエンジニアリングのスピードやコストに重きを置いてるんだろうね。だから、インタプリタ言語の数が「エンタープライズ系」や「パフォーマンス系」の言語よりも多いのかもしれない。

同じ気持ちだし、Gleamがこの基準に最も合った言語だと思う。GoのシンプルさとKotlinの使いやすさを兼ね備えてるよね。

Rustは汎用的な言語だよ。何にでも使えるけど、仕事には最適なツールを使うべき。エコシステムも大事だし、何を作るつもりなの?

Swift!実は結構大きなサーバーコミュニティがあって、VaporやHummingbirdはどちらも素晴らしいフレームワークだよ。Appleは一部のJavaサービスをこれに置き換えてるし、オープンソースでクロスプラットフォームだし、AppleはLinuxでも使えるように本気で取り組んでるみたい。Xcodeは必要ないし、オープンソースのLSPと一流のVSCodeプラグインもある。しかも書いてて楽しい言語だよ。人によっては、Rustよりも優れた高レベルな言語だって言う人もいる。Kotlinの見た目も好きだけど、使ったことはないんだ。KotlinとSwiftは、現代のマルチパラダイム言語の中で二大巨頭だと思う。

Scalaは今まで使った中で最高の言語だと思う。Typescriptの良い部分とJavaやRustの良い部分が全部詰まってるし、フィンテックはまだそれを使って仕事を見つけられる数少ないニッチの一つだよ。

Fintechに留まりたいなら、Java、C#、C++、Web系のTypeScript以外はあまり見当たらないな。いくつかのFintech企業はちょっと変わったことをして、HaskellやF#、Scalaを使うこともあるけど、主に特定のワークフロー用のDSLとして使われてるみたい。配列言語に興味があるなら、銀行やフィンテックはその数少ない分野の一つだけど、そのポジションは取りにくいみたい。Dyalog (APL)、J、BQN、Kdb+ (Q) https://www.arraycast.com/resources

Pyrightの厳格モードでのPython。約20万行の完全に型付けされたPythonプロジェクトで働いてるけど、楽しいよ。[0]: https://github.com/xdslproject/xdsl

  • TypeScriptは非厳密性を許可するオプションに制限されていたけど、これはプロジェクト設定でオンオフできるから、C++プロジェクトの-Wallみたいなもんだよ。俺もフィンテックやIMEで働いてるバックエンド開発者だけど、TypeScriptは素晴らしい選択だと思う。Pythonの経験から言うと、どの型チェックライブラリも十分に完成してないよ。

Nimは、Pythonに似た構文を持つ静的型付け言語なんだよね。たまに思うんだけど、もしAIがPythonのプロジェクトをNimにうまく翻訳できるようになったら、将来的にもっと人気が出る可能性があるんじゃないかな。

これに関して良いデータソースを見つけるのは難しいね、特にStackOverflowが減少してるから[1]。IEEEの方法論[2]は、可能な範囲では理にかなってるけど、データソースにはそれぞれ欠点がある(必ずしも相殺されるわけじゃない)。Googleが報告する検索結果の数は、最も変動が激しい間接的な代理信号だよ。検索結果にはクエリに言及しているすべてが含まれていて、2025年の公平な代表とは約束されてない。言語を使ってる人は、あまり「Xプログラミング言語」とは言わないし、すべての宣伝を「トップ言語」の宣伝として数えるのは無理がある。TIOBEもこの方法を使っていて、二桁の小数点で人気を表示する大胆さがあるけど、彼らの歴史的データを見ると、Cの「人気」は2年で半減し、翌年には倍増したことがわかる。一方で、Cは全く動かなかった。この方法には±50%の誤差があるよ。[1]: https://redmonk.com/rstephens/2023/12/14/language-rankings-u... [2]: https://spectrum.ieee.org/top-programming-languages-methodol...

もしLLMのクエリ統計が手に入れば、今が一番の情報源かもしれないね。追記:TFAでこの点について詳しく触れてるのを見たよ。

それに、TIOBEは今年突然Perlがトップ10に入ったけど、新しい開発者は見かけないね。そしてAdaも!あのAdaプログラマーたちはどこに行ったんだろう?

一番役立つのは求人広告だね。プログラミング言語市場の需要側をはっきり示してるから。確かに、どれだけのコードが実際に動いてるかはわからないし、企業によっては大規模なチームがいても流動性が低いから、銀行のCOBOLスタックは見えないけど、言語の実際の有用性を理解するためのもっとも役立つ、直接的に測れる方法だと思う。

「Arduino」って何?もし趣味でデバイスをDIYするための「Arduino」のことなら、「Arduino」は言語じゃなくてC++だよ。

その通りだけど、HTMLやCSSがプログラミング言語だと言われるのも同じ根本的な理由だし、CやFortranで書かれたライブラリが「Python」ライブラリだって言われるのもそうだよね。

そうだね、それは変だし、チャートの信頼性を失わせるよね。だから、これでC++が少し上がるかも。

Arduinoのドキュメントでは「Arduinoプログラミング言語」って呼んでるけど、ほとんどC++にちょっとしたtypedefsが加わっただけなんだよね。なんでそうなってるのかはよくわからない。

Javaがこんなに目立ってるのに驚いてる人たち、これまでどこにいたの?10人のスタートアップでNode.jsのバックエンドばっかり?企業向けソフトウェア会社から完全に隔離されてたんじゃない?

Javaは新しいCOBOLだね。金融業界、保険業界、医療業界は20年くらい前にJavaに飛びついて、今では膨大なJavaコードのリポジトリを持ってるし、COBOLコードをJavaに移行してるところも多いよ。

変な話だけど、俺はGoogleに5年以上いるんだ。統計から見ると、アクティブに開発されてるJavaのコードがめちゃくちゃあるし、会社の中には「Javaショップ」って呼べるような大きな部分もあると思う。ランダムにコードを掘り下げることはよくあるけど、実際にJavaを見たのはこの間の在籍期間で3回くらいかな。もしJavaのコードを提出しなきゃならなくなったら、可読性レビューのために連絡できる人が一人もいないと思う。コンピュータサイエンスの学位で最初に学んだ言語がJavaだったけど、CS学科の選択は賢明だったと思う。でも、10年前に辞めてから一度もJavaを書いてない!Javaの使い道は大きくて重要なものが多いけど、なんか孤立してる感じがするな。経済的なバリューチェーンのどこに位置してるかが関係してるのかもね。

驚いてる人は金融業界の人じゃないね。企業全体とは言わないけど、Microsoftや.NET/C#が支配する非金融の企業もあるから。

AIの支援があるおかげで、プログラマーは言語の細かい部分を気にしなくて済むようになってきてる。確かに。でも、必要になるときが来るんだよね。そうすると、見た目は小さな問題に思えるけど、実はこの全体の混乱と深く絡み合っていて、ウサギの穴に落ちる準備が整う。 > ほとんどの開発者は、コードが動くCPUの命令セットやハードウェアの特異性にあまり注意を払わないから、プログラムがどの言語で書かれているかは最終的には小さな詳細になってしまう。これが俺の見解としては誤解を招くかもしれないけど、ここには二つの非常に異なるケースがある気がする。まあ、全員がffmpegレベルのチャンピオンで、ASMでコードゴルフを最後のサイクルゲインまで楽しむわけじゃないしね。でも、第三世代プログラミング言語が他の提案に完全に取って代わられずに残っている理由もあると思う。表現力と精度のトレードオフが全てなんだよね。何をフォーカスゾーンに置きたいか、何をほとんど制御されていない詳細に委ねたいか。それで、もし速く進むために透明な眼鏡を外さなきゃならないなら、前方で何が起こっているかを報告するためのしっかりした代替プローブが必要になるよ。

「…深く絡み合った…」って、あなた新しいフレーズを作ったんじゃない?いい感じだね!

「最近の開発者は、自分のコードが動くCPUの命令セットやハードウェアの特性にあまり気を使っていないから、プログラムがどの言語で書かれているかは結局あまり重要じゃなくなってるよね。もしそれが少しでも真実なら、言語の構文を生成することなんてしないはずだし、サポートしたいチップアーキテクチャ用の生の機械コードを生成しているはずだよ。あるいは、プロンプトを配布してAIの仮想マシンが後でターゲットの機械コードを生成するってことも考えられるけど、今のところはまだまだ遠い話だね。」

ああ、大変だ。よくわからないことにAIを使うのは、確実に失敗のもとだし、勧めるべきじゃないよ。

Javaは未だに人気だね。ヘルシンキ大学の素晴らしいMOOCコースでJavaを再学習してるところなんだ。Spring Bootを学んで、小さなプロジェクトをいくつか作って学んだことを強化しようと思ってる。でも、Spring Bootのチュートリアルは、JSやReact、Pythonみたいな新しい言語やフレームワークに比べて質が低い気がする。よくあるのは、パワーポイントのプレゼンテーションを30分間話してるだけの人が映ってるだけだし。Spring Boot(または企業で使われているJavaに関する良いチュートリアル)をおすすめしてくれる人いる?

Javaは書く文化が強いと思うな、動画文化よりもね。

ああ、Spring Bootからは逃げた方がいいよ。結局、新しいJBossみたいなもんだからね。企業向けソフトウェアに関わりたいならそれでもいいけど、Javaの使い方としてはあまり良くないと思う。私の意見としては、JavaでAndroidアプリを作ることを学んだ方がいいよ。チュートリアルも充実してるし、新しいスキルも身につくしね(まだなら)。その後は、Javaの基本知識であるPOJOを学ぶことに集中するといいよ。私の職場ではみんなJavaやC++でコードを書いてるけど、Spring Bootはデバッグやパフォーマンスの問題が多くて、あまり推奨されなくなってきてるんだよね。

ヘルシンキ大学の素晴らしいMOOCコースを使って、Javaを再学習してるんだ。 これ、面白そう!リンク教えてくれる?

このウェブページのリンクに、前後のスペースが入ってるのがすごく気になるんだよね。たまにだけど、いつもそうだし、見た目がめっちゃだらしない。こんなこと、ウェブページでどうやったらこんなに多く起こるの?WYSIWYGエディタで打ったのかな?

Pythonがこんなに人気じゃなかったらいいのに。コンパイル時の型チェックが恋しいな。