软件正在变成对话的副产品
软件正在变成对话的副产品
今天下午,我被一件小事折磨得脑子疼:
把博客文章发到 X.com 的文章编辑器里。
听起来很简单对吧?复制粘贴不就完了?
问题是:
- 粘贴过去,格式全丢
- 标题没了、列表没了、代码块更是一坨乱码
- X.com 编辑器支持富文本,但你得用它的工具栏一个个点
- 一篇长文章,光调格式就能调半小时
我当时的状态是:
这破玩意儿怎么这么难用?一定有人做过类似的工具吧?
然后我搜了一下,还真有。
GitHub 上有个项目叫 x-article-publisher-skill,专门干这事:解析 Markdown、转成 HTML、用富文本方式复制到剪贴板、粘贴时格式全保留。
但我没有把它 clone 下来。
我直接跟 Claude 说:
“帮我写一个 skill,把 Markdown 文章发到 X.com 编辑器,保留格式。”
然后就开始了一段”现场造轮子”的对话。
过程比结果更有意思
一开始,Claude 给我输出的是纯文本。
粘贴过去,格式全丢。
我说不对,X.com 编辑器支持富文本。
Claude 说好,那我把 Markdown 转成 HTML,用 pbcopy 复制。
还是不对。pbcopy 只能复制纯文本,富文本需要用 NSPasteboard 设置 HTML 格式。
Claude 说好,那我用 pyobjc-framework-Cocoa。
但系统 Python 不让装包。
Claude 说好,那我建个虚拟环境。
虚拟环境建好了,复制成功了。
粘贴过去,格式有了,但代码块没了。
我说 X.com 不支持代码块。
Claude 说好,那我把代码块转成引用块。
粘贴过去,引用块有了,但表格没了。
我说 X.com 也不支持表格。
Claude 说好,那我把表格转成列表。
终于,能用了。
整个过程大概 40 分钟。
这件事让我意识到一个变化
以前,软件是”产品”。
你有需求 → 找工具 → 下载安装 → 学习使用 → 解决问题。
中间有大量的”寻找成本”和”学习成本”。
现在,软件正在变成”对话的副产品”。
你有需求 → 描述问题 → AI 现场生成 → 不对就改 → 用完即走。
今天这个 post-to-x skill,我没有去 GitHub 上 clone 那个现成的项目。
不是因为它不好,是因为”描述需求然后让 AI 写”这条路径,比”找到项目、理解结构、配置环境、跑起来”更短。
而且,AI 写出来的东西,是完全贴合我的项目结构的。它知道我的 _posts 目录在哪,它知道我的文章格式是什么,它知道我用的是 macOS。
这不是”通用工具”,这是”现场定制”。
软件工程可能正在消失
这句话有点吓人,但我越来越觉得它是真的。
传统软件工程的核心假设是:
软件是昂贵的,所以要复用。
于是我们有了:
- 需求分析(确保做对)
- 架构设计(确保能扩展)
- 代码规范(确保能维护)
- 测试体系(确保不出错)
- 文档体系(确保能交接)
这一切的前提是:代码写一次,要用很久。
但如果代码变得廉价呢?
如果”写一个工具”的成本,低于”找到并学习一个现成工具”的成本呢?
那很多软件工程的实践,就失去了存在的理由。
你不需要”复用”,因为现场生成更快。
你不需要”文档”,因为代码就是对话的产物,上下文就在对话里。
你不需要”交接”,因为下一个人可以直接问 AI “这段代码在干什么”。
但有些东西不会消失
今天这 40 分钟里,Claude 写了好几版代码,改了好几次方向。
每一次”不对”,都是我说的。
- 我知道纯文本粘贴不会保留格式
- 我知道
pbcopy只能复制纯文本 - 我知道 X.com 不支持代码块和表格
- 我知道要用
NSPasteboard设置 HTML 格式
Claude 不知道这些吗?
它知道。但它不会主动告诉我”你这个思路走不通”。
它只会顺着我的指令往下写,直到我发现不对。
所以真正值钱的,不是”能写代码”,而是”能判断对不对”。
AI 让”写出来”变得廉价。
但”知道该写什么”、”知道哪里会出问题”、”知道什么时候该停下来换个方向”——这些判断,还是人的事。
结尾
今天这个 skill,我不会把它发到 GitHub 上。
因为它太贴合我的项目了,别人用不了。
但这恰恰是它的价值:
它不是”通用工具”,它是”我和 AI 的一次对话的产物”。
用完即走,下次再聊。
软件正在变成液态的、流动的、一次性的。
这听起来有点浪费,但也许这才是软件本来该有的样子:
解决问题,然后消失。