「用 AI 重写 Photoshop」这条消息,最容易被鼓掌,也最容易被误读。它听起来像把一座大楼的砖拆下来重砌一遍,而真正的难点,从来不在砌砖这道工序上。
看看 ArtCraft 干了什么。创始人 Brandon Thomas 在 AI Engineer Code Summit 上把话撂得很满,公司已经发布 17 款开源应用:PhotoCraft 用 Rust 从零写,旁边还站着 PdfCraft、WordCraft,以及一个克隆 Figma 的东西。17 款,听着像一支军队。
可军队和国土是两回事。写出来不算赢,让人愿意搬家才算。这中间隔着的,是二十多年攒下来的使用习惯,不是几万行代码能填平的沟。

他们凭什么
先挑桌面软件下手
这个选择看着莽,其实是挑过的。界面布局、图形渲染、文件格式解析,这三样都是确定性工作:输入什么、输出什么,逻辑写死,没有模糊地带。
写界面这件事,agent 拿到的是明确答案:按钮放哪、图标几像素、点下去跳哪一页。它不需要猜,照着做就行。人写界面会偷懒,会嫌烦,会先把这里糊过去;机器不烦。
让 agent 干这类活,它不会跟你耍心眼。反倒是那些需要拍板的东西——数据怎么分片、接口怎么定版本——它写得再工整,你敢直接上线吗?
桌面应用还有个隐性好处:基本不可变。今年是这块画布,明年还是这块画布。不像后端天天被业务按在地上摩擦,表结构一周改三回。地基不动的房子,机器人才敢往上垒。
后端留给人类,
这分工反着来
Brandon Thomas 的原话大意是:需要 schema 迁移、需要 API 设计的事情,人类来做;桌面应用和游戏这种基本不可变的,把 agent 丢上去,给足信任。
为什么偏偏把 schema 迁移留给人类?因为那是不可逆操作。表结构改错,回滚要停机;接口定错,下游几十个调用方跟着返工。这种决定错一次,代价要摊到以后每个季度。
这话跟行业主流口径正好相反。这两年所有人都在讲 AI 写后端、AI 修 bug、AI 补测试,仿佛离服务器越近代价越高。他倒好,把最像脏活的那一半直接交出去了。
我的判断是,他说的「信任」不是胆子大,是算过账。后端一次迁移搞砸,半年的数据回不来;界面写丑了,改一版重新发就行。风险不对称,才敢把 agent 放上去。所谓给足信任,本质是给足了容错空间。
开源宣言,其实是
一张商业地图
17 款全开源,一分钱不收。这种姿态在演讲台上特别好看,但它不是慈善,是定价策略的前半段。
软件免费送,钱从别处来:云端渲染、团队协作、企业私有部署、技术支持,随便哪一样都能开票。先用免费把开发者圈进来,等这些工具嵌进别人的流水线,再谈钱,那时换掉的成本已经很高了。
这是老剧本,浏览器、数据库、操作系统都演过一遍。区别只在于,从前演这出戏要几百人和好几年,现在成本压到一个小组织也扛得住。开源不是理想主义,是把获客预算换成了代码。
一个组织顶一支队伍
ArtCraft 给自己的定位很直白:AI 时代的小型开发组织,用 AI 程序员替掉大团队,去把经典软件重写一遍。这话听着狂,拆开看倒没那么狂。
以前做一款 Photoshop 级别的桌面软件,要产品、交互、图形、测试好几摊人,排期按年算。现在一个能拍板的人带一群 agent,把编译、调试、翻日志这些活摊出去,人头能压到原来的零头。
但小组织的天花板也在这儿。人少,意味着没人拦着你犯错;agent 快,意味着错误也能一夜之间铺满整个代码库。省下来的人力成本,有一块要还给代码审查。
克隆和兼容,
隔着一条河
一个能打开 PSD 的软件,和一个能替代 Photoshop 的软件,中间隔的不是功能列表,是三十年的图层、蒙版、色彩配置、笔刷引擎,还有几十万个第三方插件。
用户不关心你用什么语言写,Rust 也好别的也好,他只关心昨天那个文件今天打开有没有偏色,动作脚本还能不能跑,甲方发来的模板打开会不会炸。
再加上协作这一层:谁跟谁用什么格式交付,评审走什么流程,老员工带新人靠的是那套快捷键。换软件等于全员重新培训一遍,这笔成本没人爱认,但它一直是真的。
所以真正的战场不是「再做一个编辑器」,是把存量用户的工作流整个搬过来。谁能让一个设计师不改任何习惯就换掉手上那套东西,谁才算赢。功能对齐是入场券,兼容才是护城河。
订阅费会降,但不是明年
对普通用户来说,好消息是长期看订阅费一定会被压。多一个能用的免费替代品,定价权就松动一分,这个逻辑不需要情怀也成立。
坏消息是时间。这 17 款更像是把旗子插在地图上,标出「这块我也能打」,离「能天天干活」还有距离。第一版永远能跑通演示,第二版才开始处理那些让人骂娘的边界情况。
我的判断是,这一轮真正被改写的不是某款软件,是桌面软件的成本结构。成本降下来,价格才降;价格降下来,用户才有得选。顺序不能倒着来。
「重建整个互联网」这种口号,先放一边。真有本事,就先稳定打开一百万个 PSD,一个像素都别错。做到了不用喊,做不到,喊了也只是回音。