返回文章列表

数量不等于分量:八大语言开源生态的真实对比

约 2 分钟数据分析语言生态

比较编程语言生态时,最常见的说法是「哪门语言的项目最多」。这个问题好回答,但价值有限——它只告诉你数量,没告诉你分量

我们持续追踪 GitHub 上超过 6.7 万个高星仓库,并每天记录它们的 star 变化。把这份语料按语言拆开,能看到一些比"谁的项目多"更有意思的东西。

先看原始数据

下面这张表是实时从我们的数据库读取的,不是截图:

LanguageReposTotal starsMedianTop repo
Python11,74156.5M1,998public-apis/public-apis
JavaScript8,42536.2M1,932react/react
TypeScript6,38738.3M2,283freeCodeCamp/freeCodeCamp
Java4,16815.4M1,913krahets/hello-algo
Go4,08920.7M2,295avelino/awesome-go
C++3,42914.9M2,011tensorflow/tensorflow
C2,5339.9M1,943torvalds/linux
Rust2,27812.2M2,138ultraworkers/claw-code
C#1,8996.7M1,9972dust/v2rayN
PHP1,6625.5M1,834danielmiessler/SecLists

三个值得注意的地方

一、仓库数量的领先者,中位数并不领先

Python 的仓库数量遥遥领先,几乎是第二名的 1.4 倍。但看中位数 star——也就是"随机挑一个该语言的项目,它大概有多少 star"——Python 反而落在 Go 和 TypeScript 后面。

这说明 Python 生态的广度极强:从科学计算到爬虫脚本到机器学习,什么都有人写。但广度的另一面是长尾很长,大量项目停留在刚过门槛的水平。

二、Go 的「精品率」最高

Go 的仓库数只有 Python 的三分之一,中位数却是所有语言里最高的。

一个合理的解释是领域集中。Go 的高星项目高度集中在云原生、DevOps、CLI 工具这几类——这些领域的使用者本身就是开发者,天然更容易给 star。相比之下 Python 覆盖的领域里,有大量使用者根本不上 GitHub。

三、总 star 和中位数讲的是两个故事

JavaScript 的总 star 数很高,但中位数在这几门语言里偏低。总量高是因为它有一批诞生早、积累久的巨型项目——那是历史沉淀。中位数偏低说明近年新增的项目里,能突围的比例在下降。

TypeScript 则相反:仓库数比 JavaScript 少,中位数却更高。这符合近几年新项目默认用 TypeScript 起手的趋势。

看看头部项目

数量和中位数之外,头部项目的构成也能说明生态性格。这是当前 star 最高的十个仓库:

  1. 1codecrafters-io/build-your-own-x529.5k
  2. 2sindresorhus/awesome487.1k
  3. 3freeCodeCamp/freeCodeCamp452.2k
  4. 4public-apis/public-apis451.7k
  5. 5EbookFoundation/free-programming-books392.6k
  6. 6openclaw/openclaw383.6k
  7. 7nilbuild/developer-roadmap362k
  8. 8donnemartin/system-design-primer358.5k
  9. 9jwasham/coding-interview-university356.7k
  10. 10kamranahmedse/developer-roadmap310.1k

值得注意的是,榜单前列有相当比例是学习资源和清单类项目,而不是可运行的软件。这类项目 star 极高但和语言生态的工程能力关系不大——分析语言生态时,把它们和框架、运行时放在一起比较是会失真的。

这份数据的边界

任何数据分析都该说清自己不能证明什么:

  • 样本是"已经流行的项目",不是 GitHub 全量。所以这里的中位数是"在已经跨过门槛的项目里的中位数",比全站真实中位数高得多。
  • star 不等于质量,也不等于使用量。它更接近"开发者可见度"。很多企业级关键库的 star 数远低于其实际重要性。
  • 语言归类按 GitHub 的主语言判定。一个前端框架可能因为配置文件占比被判成别的语言。
  • 不同语言的年龄不同。C 和 Java 的生态积累了几十年,Rust 只有十几年,直接比总量对后者不公平。

小结

如果你在做技术选型,比起"哪门语言项目多",更值得问的是:我要的这个细分领域里,有多少可用的成熟项目。全局数量在这个问题上帮助有限。

这张表会随我们每天的抓取自动更新,你也可以在排行榜里按语言和分类自己筛。

文中所有数据均实时读取自本站数据库,随每日抓取自动更新。