W02-重新思考复杂的抽象

随着AI Coding能力的提升,重新思考复杂的抽象。

我们过去十年在前端工程化上构建了很多复杂系统,比如组件库、动态化方案、配置化系统。这一切建立在一个假设上,优质的代码是昂贵的,开发者的时间是稀缺的,人类的认知带宽是有限的。所以我们遵守 Don't Repeat Yourself (DRY) 的设计原则,为了避免重复劳动,为了降低维护成本,为了在有限的人力资源下构建庞大的系统。这个可以称作为稀缺经济模型。

相反,人类的复杂抽象给 AI 设置了障碍。当 AI 面对一个高度封装的、使用了各种高阶组件(HOC)和各种自定义 Hook 的项目时,如果没有定义清楚这些黑盒子里到底是什么,它往往会产生幻觉。如果代码是 Write Everything Twice (WET) 的,是直白的、平铺直叙的、甚至是冗余的,AI反而能处理得更好。现在完全可以做一个近似假设,假设实习生的资源是无限的,过往的技术命题会有怎样的新解法。这个可以称作为丰饶经济模型。

刚好上周看到了一条关于 Tailwind这个著名前端开源库的新闻, 这个事件很有意思,可以详细聊一聊。

事情起因于 Tailwind CSS 的 GitHub 仓库。一位开发者提交了一个 PRarrow-up-right,建议在官网增加一个 /llms.txt 端点。这是一个面向大语言模型(LLM)的纯文本标准,旨在让 AI 能更高效、准确地消化技术文档,从而在 Coding 时给出更精准的代码建议。从技术角度看,这是一个极其“正确”的提议。在 AI 辅助编程已成标配的今天,拥抱 LLM 几乎是开源项目的政治正确。

然而,Tailwind 的作者 Adam Wathan 在 1 月 6 日亲自关闭了这个 PR,理由是商业可持续性。如果 AI 能太容易地读取文档并直接给出答案,开发者就不会再访问官网。官网流量的下降,意味着 Tailwind UI 等付费产品的曝光率下降,直接威胁公司的营收。

对于 Adam 的这个决定,社区里不乏批评之声,认为这违背了开源精神。为了解释这一切,Adam 发布了一段 33 分钟的录音arrow-up-right,是他在清晨散步时对着手机录下的独白。他们的资金只够 6 个月的开销,刚刚裁掉了 75% 的工程团队(实际上是 4 人中的 3 人,但每个都很牛)。有时间的话推荐去听一听,能感受到透过声音传导出来的低气压和无力感。

补充一些关于 Tailwind 的历史。Tailwind 出现在 2017 年,我认为是在 2020 年达到了辉煌的顶点。那一年,Adam Wathan 兴奋地宣布,他们的第一个商业化产品 Tailwind UI 发布不到 5 个月,收入就突破了 200 万美金arrow-up-right。现在回首,如果说前端行业有一个顶峰,我觉得很大程度上可以定格在 2020 年。

在 Tailwind 之前,前端最流行的组件库是 Bootstrap。之所以能干掉 Bootstrap,是因为瞄准了CSS 的维护成本问题。Tailwind的设计哲学是 Utility-First,不提供预设组件,提供的是类似 p-4, flex, text-red-500 这样的基础积木。本质上是“组合优于继承”在CSS领域的胜利。Bootstrap 是继承式的思维,继承预设组件,而Tailwind 是组合式的思维,组合原子类以构建新样式。

最后聊聊开源。社区里有人这样讲,“最终只会剩下两类开源软件:要么是有弃用倒计时的项目,等着无偿志愿者耗尽精力;要么是由大型企业支持的项目。”

目前看到的,Tailwind 是前者,Bun 是后者。根源是搭便车问题。在AI时代之前,虽然大多数用户不付费,但至少他们贡献了流量、名声和潜在的招聘机会。但在AI时代,Agent 成为了终极的搭便车者。它们以极高的效率榨取开源知识,将其转化为商业服务的价值,而开源维护者从中一无所获 。

Tailwind 至少让我们看到,用开源软件换取注意力,注意力转化为收入,这一经典商业模式面临转型。

不过这个世界不可能铁板一块只有两种选择。比如Stack Overflow,这算一个具有开源精神的平台。也是上周的新闻,ChatGPT 出现后,月提问量从 30 万几乎归零,但通过内容授权与企业级 AI 产品变现,年收入反而翻倍至 1.15 亿美元。

最后更新于