无人为你的技术栈辩护
摘要
本文讨论了Anthropic的文档,以SolidJS作为迁移示例,反映了行业中结论传播而无论证的趋势,以及AI带来的执行成本降低的影响。
<p><a href="https://lobste.rs/s/hg2lbk/nobody_argued_for_your_stack">评论</a></p>
查看缓存全文
缓存时间: 2026/08/28 15:38
# 没人为你的技术栈据理力争
来源:https://dev.to/playfulprogramming/nobody-argued-for-your-stack-51fj
上周,有人发现Cursor已基本完成从SolidJS到React的迁移(https://x.com/poteto/status/2089227731305464150)。这次迁移大约发生在七个月前,但在Solid 2.0 RC版本发布(https://www.solidjs.com/blog/solid-2-0-rc-the-big-reveal)后成为讨论焦点。然后昨天,一周后,我注意到Anthropic文档中关于其大规模迁移功能的示例命令是:
[](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fypgfccjdqzhchq7q76h2.png)
我承认我的直觉反应(https://x.com/RyanCarniato/status/2092631951530410280)不太理想。在他们本可以选择的所有示例中......我多年的工作竟成了需要被迁移的对象的典型示例——就在我们发布项目史上最大版本的同一周——这种刺痛感我不会假装不存在。我的第二个反应是认为,这就像我本周看到的其他跟风文章(https://bytes.dev/archives/513)一样,蹭的是那条一周前的旧闻热度。
然后我查阅了互联网档案馆,发现这个内容至少从2026年4月就存在了(https://web.archive.org/web/20260412131455/https://support.claude.com/en/articles/14554000-claude-code-power-user-tips)。比Cursor事件曝光早了四个月。当时,这整件事在公众视野中的全部存在,不过是Cursor一月份一篇博客文章(https://cursor.com/blog/scaling-agents)中夹在更大更新之间的一个实验提及。那种行业外人士根本不会注意到的东西。没有推理过程,没有基准测试,没有论证。
停下来想想这意味着什么。我需要谨慎,因为我无法证明Anthropic的任何人是否读过那篇Cursor文章。没人能证明。也许是文档作者看到了这个实验。也许是Claude自己生成了示例。但仔细想想:要么它是从一家公司发布说明中一行不起眼的文字,流传到另一家公司的官方文档中;要么它根本不需要任何起源。在任何公开迁移发生之前,这已经被默认认定了。
我们这个行业已经悄然开始传播结论,而不再传递论证。我们选择了一个最糟糕的时机,因为——正如我将要阐述的——论证是唯一仍然重要的来源。
---
## https://dev.to/playfulprogramming/nobody-argued-for-your-stack-51fj#why-this-matters-more-than-it-used-to这为何比以往更重要
有人可能会问,这不是一直如此吗?团队盲目效仿大厂。Netflix或Facebook使用某种技术,这早于AI数十年。外在观感和办公室政治向来比纯技术实力更有分量。Facebook的影响力确实帮助了React早期的传播。
但过去,叙事传播总伴随着阻力。它总在竞争,但无法超越论证。这种情况已经改变,原因有二:
首先,执行成本急剧下降。Bun从Zig重写为Rust(https://bun.com/blog/bun-in-rust)——约一百万行代码——几乎完全由Claude代理在几天而非几个月内完成。在你开始担心“锁定效应”之前,请注意,反向迁移虽然不那么容易,但从未如此简单过。从Rust迁移到Zig,或从React迁移到Solid,从未如此容易。
这听起来是好消息。确实如此。当迁移需要耗费人力数年时,成本会抑制潮流。现在所有方向的执行成本都大幅降低。剩下的唯一因素就是理由。表面上看,这暗示这些决策应该基于技术实力。但当叙事设定方向时,你就会明白文档中一行不起眼的文字为何值得一篇长文来论述。
其次,结论产出已经工业化。Cognition刚将其营销网站从Astro迁移到Next.js(https://x.com/jaredpalmer/status/2089463862085251372)。一个内容网站。几乎是普遍共识的Astro主场,包括与此事无关的人。这次迁移由Devin自身执行并发布为案例研究:代理进行修改、测试,并记录自己的验证过程。没有代码仓库,没有前后对比数据,没有基准测试。产出物不是网站,而是这个故事。
相信我,这类故事数不胜数。迁移现在已成为代理行业的展示类别。Theo Browne(https://x.com/theo)几周前就试图用一些非常好的建议告诉我这一点。但只有亲身感受时,冲击才更强烈。那些展示效果完美的迁移,从定义上说,都是朝着代理当前最擅长的方向移动的。市场部门正在以有机工程决策永远达不到的速度,产出“X → 主流库”的结论。
于是你看到了这种张力:技术栈对流传的结论从未如此敏感,而结论从未如此快速地被产出,且附带的推理越来越少。
---
## https://dev.to/playfulprogramming/nobody-argued-for-your-stack-51fj#what-an-argument-looks-like论证该是什么样
这类论证并非闻所未闻,只是正变得越来越罕见。
当Bun从Zig迁移到Rust(https://bun.com/blog/bun-in-rust)时,Jarred Sumner在公开场合进行了论证,并提供了证据。他讨论了问题类别和内存管理问题。你可以不同意这个论证。人们(https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.html)确实这样做了,逐条反驳,在公开场合。这就是价值所在。论证可以被参与、验证、细化、反驳或强化。而结论只能被重复。
或者看看TanStack在tanstack.com上使用React Server Components的历程。他们几乎整年都在与自己辩论。当tanstack.com采用React Server Components(https://tanstack.com/blog/react-server-components)时,他们撰文记录并进行了衡量。当他们停止使用时(https://tanstack.com/blog/we-stopped-using-rsc-on-tanstack-com),他们同样做了记录:什么变了,什么替代了它,为什么权衡在他们的具体情况下发生了逆转——而TanStack Start继续作为可选原生支持RSC。那篇称该决定“平淡无奇”的反转文章恰恰说明了问题。一次对React旗舰架构的公开反思,引发了洞见而非争论。因为他们提供的是分析而非结论。
这就是评估进入公共记录的样子。jQuery输给React不是因为训练数据集这么说。而是因为它在公开场合就事实本身进行了多年的论证,最终落败。你尊重的每一个库都是通过赢得这类竞争才达到今天的地位。我之前描述的事件流不举行竞争,它只提供方向,并在其上不断累积。
---
## https://dev.to/playfulprogramming/nobody-argued-for-your-stack-51fj#the-argument-nobody-published无人发布的论证
公平地说,Cursor从未发布过结论。那只是一个“仍需仔细评估”的实验,随后是Solid 2.0 RC发布时的祝贺帖(https://x.com/poteto/status/2089227731305464150)。但那篇帖子仍将信号描述为“性能陷阱”和“意外扇出”——没有数字,无法深入探讨——并直接将React Compiler作为解决方案。无需恶意揣测。诊断和药方来自同一处。
当我试图重建Cursor可能提出的论证时,发现它非常有趣。远比“性能陷阱”有趣得多。
那篇帖子显然强调了代理“编写优秀Solid代码的能力相当差”,一切“最终都被意外地跟踪了”。虽然我的“Solid思维”很难想象他们是如何做到这点的,但我毫不怀疑。一个内化了React思维模型的代理会用写React的方式来写Solid,而这样写出来的Solid代码很糟糕。我也见过相反的情况。区别在于,当代理搞砸React时,训练数据会纠正它。当它搞砸Solid时,训练数据则无动于衷。这纯粹是数量游戏。
但同一篇帖子(https://x.com/poteto/status/2089227731305464150)也包含了一个相反方向的决策。他们同时也在从Tailwind迁移到StyleX。这是一次逆数量趋势的迁移。StyleX提供的替代方案是:代理犯的错误会被捕获。样式是类型化的,具有确定的合并顺序,因此一个虚构的类名会导致构建错误。
将两者并列,可以得出一个结论:让代理的错误代价变得低廉。有两种方法可以实现:数量和验证。React(及其编译器)在数量上获胜,在验证方面也可以说获胜。StyleX在数量上失败,在验证上则决定性获胜。我不会假装在这个视角下,基于信号的响应性在Solid 1.0时代是个特别舒适的位置。但这也不是巧合,正是Solid 2.0设计关注的方向。
这种分析——将数量和验证作为两个维度——是具体、可验证且有用的。它提出了可检验的主张,并为每个框架作者提供了一个设计目标。它也可能是错的。我是从一个没有基准测试的帖子和我自己的推断中重构出来的。Cursor的实际推理可能完全不同。
StyleX的决策更有趣。当验证胜出时,代理驱动的开发可以逆数量趋势而行。这是小型技术可以拥抱的第二个角度。对我来说,这不是什么新启示,而是实践证实了理论。
---
## https://dev.to/playfulprogramming/nobody-argued-for-your-stack-51fj#what-happens-if-nothing-changes如果一切照旧会怎样
如果你将这个思考推向其逻辑终点,除少数例外,每一层技术栈都会向其当前最受欢迎的解决方案收敛。前端向React收敛。系统编程向Rust收敛。脚本语言向Python收敛。甚至那些仅仅是页面的网站也向Next收敛,适配性另当别论。这就是单一文化,其形成并非基于任何人对库优势的判断,而是基于一个再也无法区分“训练数据中丰富”与“更优”的系统。
如果你是React爱好者,你应该仍然感到担忧。React之所以优秀,是因为它有竞争。Hooks诞生在一个探索组合模式的世界。React Compiler的存在,部分是作为对基于信号的框架多年来迫使人们思考的问题的回应:为何要由开发者为整个世界的重新渲染买单?React最大的优势一直是其吸收外部压力的能力。单一文化不仅扼杀替代方案,也扼杀了压力。一个没有压力的生态无法保持优秀,只会停滞不前。
有一条回归之路。团队发布分析,而非结论。模型供应商公开评估他们所发布的内容。库从StyleX的示例中学习,押注于验证。而我们其他人学会在放大信息之前,先区分输出与论证。自社交媒体诞生以来,我们一直在努力做到最后一点。
与此同时,我们可以继续生成规则文件、llms.txt、通过MCP提供的文档、精选示例。我们为Solid 2.0做了所有这些,帮助很大。但上下文是借用的,而非拥有的。它必须由每个工具、在每个会话中注入,永远持续,而惯性则在免费地与你对抗。
---
## https://dev.to/playfulprogramming/nobody-argued-for-your-stack-51fj#where-does-the-next-idea-come-from下一个想法从何而来?
最后,我想留给你一个更深入的问题。这一切归结起来的问题并非Solid能否幸存。我们没问题。我们正在发布史上最大的版本,社区是出于自身意愿选择了这个框架,更重要的是,他们知道为什么。
问题是下一个想法从何而来。
每个重要的范式最初都始于现有权威无法理解的东西。React曾因JSX被嘲笑了将近一年。JavaScript里写标记?你疯了吗?关注点分离怎么办?如果今天的工具在2013年就已存在,模型训练在仅有jQuery和Backbone的网络上,文档将每个人都在做的迁移奉为典范,结论比其论据早数月流传,你认为它能突破那个阶段吗?
它不是因为默认选择有利于它才获胜。而是因为人们在公开场合提出了可验证的论证。我不认为这些机制已经消失。迁移在所有方向上从未如此廉价。走出任何单一文化的大门从未如此敞开。我们只需要在远离具体实现的同时,仍让分析成为对话的一部分。这才是知情。这才是负责。
相似文章
Anthropic技术人员的精彩论点 :D
Anthropic的一位技术人员分享了一些精彩论点,可能涉及AI安全或技术话题。
AI 技术栈开始疑似与云技术栈相似
文章讨论了AI实施如何镜像云基础设施,以货运经纪公司为例,揭示隐藏的成本和复杂性。它主张优化AI系统,而非移除它们,以减少人工监督。
@garrytan: https://x.com/garrytan/status/2061454423034110372
Garry Tan 认为,开发者在用AI智能体时过度工程化,编写了过多代码;相反,他们应该信任模型,构建基于指令的极简软件,他的开源项目GStack就是例证。
@KakaluoteW45042: 后端也一样:AI的平坦大道越走越窄——TypeScript/Go + Postgres,而生成……
这篇文章讨论了AI如何强化像TypeScript/Go + Postgres这样的默认技术栈的主导地位,导致生态系统同质化,并增加了小众技术栈的成本。
stackd.cc
stackd.cc 是一个分享和发现 AI 技术栈的平台。