八年后,它终于出现了。

不是八年磨一剑,是八年想动手,但一直不敢。

一个Google工程师,想做SQLite开发工具,整整想了八年。

然后今年,他用AI花了三个月,搞定了。

AI配图

但就在上线前,他亲手把代码全删了,重写了一遍。

这可能是目前关于AI编程最真实的一篇记录。


八年不敢动手的痛

故事主角叫Lalit,在Google Perfetto团队工作。PerfettoSQL——一个基于SQLite的查询语言——是他们团队的核心工具。

但他发现,整个行业对SQLite开发者体验的投入,几乎是零。

“SQLite明明这么重要,为什么没人做一个好用的开发工具?”

他试过把开源的SQLite工具借过来用。结果呢?不是不够可靠,就是不够快,要么就是根本没法适配PerfettoSQL的扩展。

从零做一个?念头动过无数次,但每次都被同一个理由劝退:

这项目太难了,而且太琐碎了。

难在哪?SQLite没有正式的语法规范,没有稳定的解析器API。整个解析器的核心代码是C写的,将近400条语法规则,每条规则都要精确对应解析树里的一个节点。

“这工作太重复、太枯燥。理解SQLite源码就花了我好几天,一个虚拟表API就把我搞崩了。”

一个业余时间想做的副项目,难度直接劝退。


三个月,AI帮我动手了

转折发生在2025年底。

他决定测试一下AI的极限:能不能完全“凭感觉”编程(vibe-code),把这个工具做出来?

AI配图

用AI(Claude Code),用最大套餐,每晚和周末肝。

一月份,他几乎当起了“半吊子技术经理”,把设计和实现全丢给AI。解析器、格式化器、Web Playground……功能一个一个蹦出来。

二月底,核心功能基本跑通了。

他很兴奋。AI帮他跨过了最大的心理障碍——启动那一步。

“以前我总是'我得先搞懂SQLite怎么解析',现在变成了'我先让AI给我整一个出来看看'。只要有东西能玩,我就能往下走。”

但很快,代价来了。


第一个月:代码爽了,人崩了

一月底,他仔细看了一下AI写的代码。

完全是一坨 spaghetti。

  • Python提取脚本,他自己看不懂
  • 函数散落在各种文件里,毫无结构
  • 几个文件直接干到几千行

“能跑,能解决眼前的问题。但要扩展?要整合到Perfetto里?门都没有。”

他做了一个决定:

删掉,全部重写。

这次他换成了Rust。并且改了玩法——

  • 自己掌控所有设计决策
  • AI只当“强化版自动补全”
  • 每个改动都严格review
  • 随时重构,不惯着

二月份,新版本的功能开始真正收敛。三月中旬,0.1版本上线。

但整个过程中,他发现了一些比代码更难处理的东西。


AI的另一面:爽是真的爽,痛也是真的痛

先说AI帮他省了多少事。

克服惯性。 想做八年的事,AI让他终于动起来了。不用先在脑子里想清楚所有设计,直接让AI生成一个能跑的原型,完了再改。

写代码确实快。 只要需求能拆清楚,AI写得比他快,风格还更标准。文档、注释、代码布局,都给你整得明明白白。

Research神器。 他之前完全不懂Wadler-Lindig这种格式化理论,AI给他讲了一遍,又快又准。一个小时就整出了原本要花一两天学的VS Code插件。

AI配图

“AI把'我不知道该学什么'的问题,直接变成了'我该问什么'。”

但代价呢?

上瘾。 这东西太像老虎机了。发一个prompt,等几秒,要么出好东西,要么出垃圾。深夜两点还在想“再来一个prompt万一成了呢”。

“累的时候prompt写得模糊,输出更烂,然后继续试,形成恶性循环。明明自己写可能更快,但就是停不下来。”

失去手感。 好几次,他对代码的整体架构还有感觉,但具体细节全忘了。哪个函数调哪个,哪个变量在哪定义——完全失联。

“这时候跟AI沟通也崩了。你说'改一下那个做Bar的东西',AI得先猜你在说哪个FooClass。”

设计拖延。 因为AI重构太方便,他总想“回头再改”。结果设计决策一拖再拖,代码库一直保持在“我看不懂”的状态。

“vibe-coding那一个月,我理解了问题,但如果一开始就在关键设计上更果断,本来可以更快找到对的架构。”


真正的问题:AI不会“设计”

他后来总结了一个关键洞察:

AI擅长“局部正确”,但不擅长“全局好看”。

一个函数、一个类,通常有标准答案,AI做得很好。但架构——所有局部拼在一起形成的样子——AI根本把握不了。

“代码就像物理。在局部看牛顿定律很简单,但放大到整个时空,曲线就出来了。AI能做好每个函数,但它拼不出好架构。”

最典型的例子:公共API设计。

他花了整整几天手动改API,就因为AI设计的那套“完全没法用”。没有测试能验证“好不好用”,没有客观指标——这恰恰是AI最弱的地方。

“这就是为什么我最后删掉重写。AI可以帮你实现,但设计得你自己来。”


三个月vs八年

现在syntaqlite上线了。

一个完整的SQLite开发工具:解析器、格式化器、VS Code插件、Python bindings、Web Playground、文档站点。

如果没AI,可能再等八年也不会动手。

但如果没有这次“删掉重写”,可能现在他手里只有一坨跑不起来的代码。

“AI是极强的实现力放大器,但它不能代替设计。它能回答具体的技術问题,但它没有历史感,没有品味,不知道一个API用起来到底爽不爽。”


结尾

这篇文章最值钱的不是“AI真牛”的 hype,而是一个真正干过活的人告诉你:

AI可以帮你启动,帮你加速,但别让它帮你做决定。

想清楚再动手,永远比改代码更重要。


【锐评】:这才是AI编程的真实样子——不是一键生成完美项目,而是帮你跨过心理障碍,再亲手推翻自己一遍。AI是放大器,你是什么人,它就放大什么。

参考链接:
https://lalitm.com/post/building-syntaqlite-ai/