海外 TypeScript 做全栈是因为可以部署到 CloudFlare Workers 体系,心智负担极低而且账单增长也平缓,没有运维压力,国内没有可以直接对标的产品。
而且在国内用 AI 又离不开人情世故,二线城市本来很多公司的员工本来就是专属某个语言的码农(注意和工程师的区别),出事故要拉来背锅的,如果不换语言,那么 Bug 还可以先甩锅给码农,码农还可以甩锅说已经用了最强的模型了。
虽然我以前写 Node ,又切到 Deno ,但是 AI 时代后端业务要常驻的我首选 Golang ,在 Token 经济学角度来说最划算,本地模型写得又快又准,压根不会有 Token 焦虑,像 mitmproxy 这个老牌抓包软件我前天用本地部署的 Qwen3.8 Flash Next NVFP4 安排任务移植到 Golang ,花了 8 亿多 token 就搞定了,各项性能指标都是 10~20 倍的提升,内存占用也非常低。
Rust 用来负责超高频的热点服务就好,
像 DHH 这个演讲也提到,将 HEY 的核心后端逻辑改由 Agent 生成 Rust 编写后,CPU 消耗降低 99%,内存降低 95%,服务器从 110 台缩减为 10 台(仅为容灾冗余保留),其峰值负载理论上一台树莓派即可承载。换到 Golang 就算悲观估计那就是 3 台树莓派也能承载,差别不大的,但是编译时间、单元测试时间、开发阶段的硬盘占用、Token 消耗都极大减少,在“生成代码→→运行测试→→捕获报错→→重新生成” 的自我纠错循环里算账划算很多。
除了应用本身服务器的成本,还要考虑到周边基础设施的成本,像数据库、缓存、消息队列、对象存储这些大部分设施都是直接买云厂商的高可用版会很贵,敢自建运维的公司少。最近 celld 这种做 CloudFlare Workers 本地部署版的设计就很激进,基础设施就依赖一个 S3 ,应用代码丢 V8 运行,如果单个实体同时访问在 50 人以下就可以设计成一个 cell ,数据库给你绑定 SQLite ,没人访问就休眠把 SQLite 丢到 S3 ,有人访问就从 S3 拉下来,没人访问时常驻内存都为 0 了,用来容灾冗余的资源也可以大幅度削减,经济帐也是非常划算,就看有没有魄力敢这么选型,我已经开始用了。