上一篇 Claude Code、Gemini CLI、Cline 全是 TypeScript 写的,这不是巧合 发出去之后,我心里还悬着半个问题没答:应用侧全是 TypeScript,可我学模型、跑微调、看论文代码,碰到的又全是 Python。两边的人都说自家才是"AI 时代的语言",到底谁说得对?
这篇把账算清楚。先给结论:
都对,因为它们不在同一层干活。Python 站在模型那一层,TypeScript 站在产品那一层,中间只有一小块重叠的战场。
赶时间的话,这张表就是全文:
| | |
|---|
| 各自垄断了一层:Python 垄断"造模型",TS 垄断"把模型做成产品" | |
| | |
| | |
| | |
一、三个榜单,三个第一
先看数据,这也是这篇敢叫"基于事实"的底气。
2025 年 11 月,GitHub 发布 Octoverse 年度报告:2025 年 8 月,TypeScript 按月度贡献者数第一次成为 GitHub 上使用最多的语言,月度贡献者 263 万,一年涨了 66%,把 Python 和 JavaScript 都压了下去。这是十多年来 GitHub 语言榜最大的一次变动。
同一年,TIOBE 指数上 Python 以创纪录的份额排第一。Stack Overflow 2025 开发者调查里,自报"过去一年深度使用"最多的是 JavaScript(66%),而 Python 是所有语言里年度涨幅最大的,涨了 7 个百分点。
三个榜单打架,不是数据有假,是量的东西不同。GitHub 数的是"谁在提交代码",TIOBE 数的是搜索热度,Stack Overflow 数的是开发者自报。三份数据放在一起看就清楚了,两门语言都在涨,只是涨在不同的位置。
GitHub 自己对 TypeScript 登顶给了归因:AI 辅助编码普及后,团队更愿意用带类型的语言接住 AI 生成的代码,加上主流前端框架的脚手架默认就是 TS。这个归因值得记住,第三节还会回来。
二、Python 那一层:不是语言赢了,是生态赢了
有件事多数人知道,但没细想过:Python 很慢。纯 Python 跑个循环,比 C 慢两个数量级不止。
那 AI 训练这种地球上最吃算力的活,怎么会交给一门慢语言?
因为活不是 Python 干的。PyTorch 的底层是 C++ 和 CUDA,矩阵乘法跑在 GPU 上。Python 在整个训练过程里只干一件事:发号施令。 它像餐厅里点菜的服务员,菜是后厨做的,没人嫌服务员写字慢。
所以模型这一层拼的从来不是语言性能,是生态。盘一下 Python 手里的牌:
框架:PyTorch、JAX、TensorFlow,第一公民接口全是 Python;数据:NumPy、pandas,二十年科学计算的积累;模型资源:Hugging Face 的 transformers 库,下载模型、微调、评测一条龙;推理:vLLM、SGLang 这些主流推理引擎,对外接口还是 Python;论文:想复现任何一篇模型论文,官方代码仓库基本都是 Python。这些牌不是一年攒出来的,是从 2006 年 NumPy 定型开始攒了二十年。"造模型、调模型、评模型"这一层,Python 没有对手。
三、TypeScript 那一层:模型造出来,总得变成产品
模型训练完,躺在权重文件里,一分钱不值。它得变成用户能碰到的东西:一个网页、一个编辑器插件、一个命令行工具。
这一层的地基,天然长在 JavaScript 生态里:
浏览器只跑 JS(和 WebAssembly),网页产品没得选;VS Code 的插件只能用 JS/TS 写,Cursor、Cline 这些 AI 编程工具都长在这上面;npm 和 npx 让"发布一个工具给别人试"这件事的成本接近零。在这个地基上,AI 时代又给 TS 添了两把火。
第一把火是官方设施。OpenAI 和 Anthropic 的第一方 SDK 都只有两种语言:Python 和 TypeScript。MCP 协议最早的参考实现是 TypeScript SDK,LangChain 也维护着 Python 和 JS 双版本。做 AI 应用需要的零件,TS 这边一件不缺。
第二把火就是第一节留的那个归因:AI 写代码的时代,类型是护栏。 模型批量生成代码,字段名写错一个,TS 在编译期当场报红;换成动态语言,得等程序跑到那一行才炸。你自己写代码时类型是负担,AI 替你写代码时类型是验收标准。GitHub 把 TS 登顶直接归因于此。
至于为什么 Claude Code、Gemini CLI 这些命令行工具也选了 TS,上一篇 Claude Code、Gemini CLI、Cline 全是 TypeScript 写的,这不是巧合 拆过四条理由,这里不重复。
四、能不能互相替换?两端不能,中间随便
把整个 AI 技术栈画成三层,替换问题就清楚了:
TS 往下打过,没打动。 TensorFlow.js 2018 年就能在浏览器里训练模型,七年过去,研究圈没人用它写论文。不是语言不行,是 CUDA 工具链、科学计算库、论文复现习惯全在 Python 侧,这座山搬不动。
Python 往上打过,也没打动。 浏览器不认 Python。Pyodide、PyScript 靠 WebAssembly 把解释器塞进网页,光运行时就要下载十几 MB,启动秒级,做玩具可以,做产品没戏。
真正能换的是中间那层:Agent 的服务端、API 编排、工具调用这些活,两边都能写。不信你看同一件事在两门语言里长什么样。
Python 调一次模型:
from anthropic import Anthropicclient = Anthropic()msg = client.messages.create( model="claude-sonnet-5", max_tokens=1024, messages=[{"role":"user","content":"你好"}],)print(msg.content[0].text)
TypeScript 调一次模型:
import Anthropic from"@anthropic-ai/sdk";const client =newAnthropic();const msg =await client.messages.create({ model:"claude-sonnet-5", max_tokens:1024, messages:[{ role:"user", content:"你好"}],});console.log(msg.content[0].text);
三个看点:
两段代码几乎逐行对应。官方 SDK 故意设计成镜像,就是不想让语言成为门槛;差别全在语言外围(await、类型标注),跟 AI 能力没有半点关系;所以中间层选语言只看一条:你团队现在用什么。别信"哪个语言更适合 AI"这种话,在这一层它是伪命题。问"TypeScript 会不会替代 Python",就像问"餐厅会不会替代后厨"。 一个管把菜做出来,一个管把菜端给客人,谁也吃不掉谁。
五、想入行 AI,先学哪个
把前面的分层翻译成选择题:
再给两条我自己的判断,不是数据,是立场:
第一,如果你在转行(比如像我一样从 iOS 客户端转),两个都躲不掉,但顺序有讲究:先用 Python 学概念,因为从吴恩达的课到 Hugging Face 的教程,教学材料的密度是 TS 的十倍;概念通了之后想做东西给人用,再补 TS,语法一周就能过,真正要学的是 npm 生态那套玩法。
第二,别在语言选择上耗超过一天。LLM 已经把换语言的成本打到地板了,你用 Claude 把一段 Python 翻成 TS,比自己查文档快得多。语言不再是护城河,对每一层生态的熟悉程度才是。 卡在"学哪个"上一个月,不如两个各写一周,身体会告诉你答案。
语言之争是个假问题,分层才是真答案。你现在手上的 AI 项目在哪一层?评论区说说你的语言组合,我看看有多少人跟我一样两头跑。觉得这篇把账算明白了,转给那个还在纠结先学哪个的朋友。
关于我
曾在多家大厂做 iOS 资深工程师,也长期坐在面试官这一侧。定位疑难问题、性能与项目优化、架构设计、底层原理,是我过去吃饭的手艺。
现在全力转行 AI 开发,一边从零手搓 Agent 把整条工程链路走通,一边啃 AI 运行框架和算法基础原理。转行路上踩的坑、想明白的事,都会写在这个号里。
如果你也在做 Agent,或者同样在从客户端往 AI 转,欢迎关注,评论区随时交流,一起进步。