乐于分享
好东西不私藏

软件已死

软件已死

2011 年,Marc Andreessen 在《华尔街日报》上发表了《为什么软件正在吞噬世界》(Why Software Is Eating the World)。他说,软件公司正在接管一切——书籍、音乐、零售、医疗、金融,没有哪个行业能置身事外。

十五年过去,这个预言几乎逐字兑现。我们确实活在他描述的那个世界里。只是身处其中的感受,和当年读到那篇文章时所想象的,不太一样。

unsetunset我们曾拥有一个软件的黄金时代unsetunset

Andreessen 写下那篇文章时,iPhone 4 发布刚满一年,App Store 上线不过三年。没有人能完全预料,一块口袋里的屏幕会成为地球上最重要的软件分发渠道。在那之后的十年,是一场创造者的大爆发。

愤怒的小鸟、Instagram、Uber、TikTok——这些名字在当时要么还不存在,要么只是几个人的业余项目。移动互联网让“软件”从一个略显冰冷的工程词汇,变成了每个人日常里触手可及的东西。手机上的每一个图标背后,都是一个团队倾注心血的产物;它们有自己的名字、图标、设计语言,甚至自己的脾气。

那些被抄走的交互细节

那也是一个软件值得被记住、被喜爱的年代。它的好,往往藏在那些今天看来稀松平常,当年却被反复谈论的细节里:Tweetie 第一次把“下拉刷新”做成一个带弹性的下拉动作,这个交互后来被几乎所有 app 抄走,成了移动时代的通用语言;Clear 用纯手势取消了所有按钮,一条待办的增删全靠滑动和捏合,轻得像没有重量;Evernote 那只折着一角耳朵的大象,把“记住一切”画进了 logo 里。

那个假装自己是“实物”的 iOS

那也是 iOS 还满是“拟物”的年代。备忘录是一张黄色的法律便笺,Game Center 铺着一层绿色的台球桌呢绒,日历带着真皮的缝线。后来 iOS 7 把这一切抹平成扁平设计,曾引发巨大争议——人们争的其实不是审美,而是软件该不该假装自己是一件“实物”。再往后,Monument Valley 把埃舍尔式的数学错觉做成了可以触摸的建筑,Paper 让画笔在屏幕上洇开像真的墨水。那时候,一个 app 可以是一件设计作品,而不只是一个功能入口。

企业软件也在悄悄变厚

企业软件也在同时经历深刻变化。Salesforce 早已证明“软件即服务”不是营销噱头,到 2010 年代,SaaS 彻底爆发:Workday、ServiceNow、Slack、Figma、Notion——新一代企业软件不再以光盘交付,而是活在浏览器里,按月付费,持续更新。效率被极大提升,但软件也悄悄从一件你可以“拥有”的东西,变成了一种需要持续“订阅”的关系。

💡 那时我们没意识到,这些软件之所以“有面孔”,靠的是功能之外的一层东西——设计、手感、被人反复打磨的那点心思。后面会看到,这一层恰恰最难被一句话生成;也正因如此,当它被抽走、只剩下功能时,我们才会觉得,好像失去了什么。

那是软件作为“产品”最辉煌的时期——软件是有面孔的、有性格的,是被人真心对待过的。

unsetunset增长背后,是一种说不清的负担unsetunset

但在某个时刻之后,事情开始变化。

App Store 里堆着两百多万个应用,而你每天真正打开的不超过十个。企业买下成百上千个 SaaS 席位,员工真正用起来的,常常只是那些“不得不填”的表单。手机屏一页页往后翻,很多应用几个月没打开过,却也没删——删掉意味着承认,当初那个下载它的需求要么已经消失,要么从来没真正存在。

你手机里有多少个 app,是“为了某个旅行下载,再也没打开过”的?我数过,我的是13个。

软件在疯狂增长的同时,也在累积一种暗默的负担。每一个软件,都是某个团队在某个时间点,对某种通用需求的理解和封装。如果你的需求恰好落在他们的认知边界之内,你会觉得它真好用;如果没有,你只能等待更新、提交功能请求,或者在论坛里和其他用户一起祈祷。你始终在为“别人的设计”买单。

Andreessen 说软件吞噬世界。但这句话里藏着一个很少被追问的前提:软件,首先得被“制造”出来。而制造的权力,长期掌握在少数人手里。你是使用者,不是创造者;能在别人提供的货架上挑选,却很难做出真正属于自己的那一个。

unsetunset应用,开始在对话里直接生成unsetunset

这道门槛,最近正在从内部先松动。写代码原本是工程师的专业壁垒,可过去一两年,越来越多工程师开始把成段、成片的编码直接交给 AI——描述意图,让模型去生成、调试、重构,自己退到审阅和拍板的位置。当“写程序”这件事本身都能被托管出去,“只有少数人才能制造软件”这个前提,也就开始动摇了。

而这种能力,正在溢出专业的圈子。于是有了一种新的可能:你在对话里描述一个需求,得到的不再是一段需要自己部署的代码,而是一个可以立刻运行的应用。它在对话里诞生,也在对话里被使用、修改、保留或丢弃。

今天,它大多还是些小东西——一个 mini-app,小到用完即走。但这只是曲线的起点。能被这样“说”出来的东西,正在变大、变复杂:今天是一个趁手的小工具,明天可能是一个完整的应用,再往后,也没什么理由断定它会停在哪里——生产级大型软件,大概也在这条线的延长线上。

做这件事的人,已经不少了,而且大多在云端。Lovable 能把一句话变成一个全栈 Web 应用——这意味着,一个不懂数据库的人,现在可以拥有一个带登录的网站了;Bolt 干脆把整个开发环境搬进浏览器,开一个标签页就能生成、预览、分享;Base44 走得更“无感”——后端、数据库、鉴权、托管全藏进它自己的云里,它去年被 Wix 以约八千万美元收购,如今已有数百万用户。

这些产品气质各异,但有一个共同点:你描述,它生成,而生成出来的东西,活在它们的服务器上。

平台级的玩家也进来了。OpenAI 的 Codex 推出了一个叫 Sites 的能力,能在对话里直接生成并部署可运行的应用,目前以企业 preview 的形式开放。就连微信也在灰度测试一个叫“小微”的原生 AI 助手:用对话描述需求,它能直接生成一个小程序,还能接着对话调整风格,比如让整体更卡通一点——只是目前它生成的小程序还仅限个人使用,不能分享给别人。

这么多起点不同的团队几乎同时涌向同一个方向,往往说明它不是谁的灵光一闪,而是底层正在发生某种结构性的变化。

但这些应用大多活在别人的服务器上。如果我想让一个工具,只属于我自己的电脑呢?

我自己也在做一个叫 Jaade 的 AI IDE。它最近也加了一个实验性的 Mini App 功能,但赌的方向略有不同:别人大多在线,把应用留在云端,Jaade 是 desktop 优先的——生成的应用直接跑在你自己的电脑上,像一件本地工具,而不是一个挂在别人服务器上的网页。比如一个看磁盘占用的小程序,它本就要读你本地的硬盘,理应长在你的桌面上。

这些看起来只是些功能更新。但退一步看,它其实在问一个更深的问题:当我们不再需要“软件”这种东西来获得某种能力时,软件本身会变成什么?当然,这一切大多还在 preview 或灰度阶段,尚未定型——这种克制是好的,有些事情值得慢一点。

unsetunsetDaisyDisk 的消失unsetunset

macOS 上有一款很出名的磁盘分析工具,叫 DaisyDisk。它用一张绚丽的旭日图展示硬盘占用:色彩从中心向外绽开,每个扇区是一个文件夹,面积越大占得越多,你可以一层层深入,看那些被遗忘的旧文件像沉积岩一样堆在深处。

它是那种用过一次就忘不掉的软件。交互优雅,视觉惊艳,连扫描过程的动画都经过精心设计。

我记得第一次打开它时,对着那些不断涌现的彩色扇区愣了几秒——原来我乱糟糟的硬盘里,住着这样一座井井有条的彩色城市。那感觉不像在检查存储空间,更像在观看一件数据驱动的艺术品。人们愿意为它付钱,不只因为它“有用”,而是因为它把一件枯燥的事变成了一种体验——它是一件作品,而不仅是一个工具。

在 Jaade 里,只需要一句话:“做一个磁盘分析工具,用树图和色块展示空间占用,可以一键扫描。”它做到了。功能上几乎没有区别,甚至可以随时要求它换配色、改布局、加一个文件类型筛选——DaisyDisk 需要等版本更新才能做的事,这里只是一句话。

但那种兴奋并没有出现。方便当然是方便的,不用安装、不用授权、不用付钱,即时可用,会让人本能地觉得“这才对”。可这个一句话生成的 mini-app 没有名字,没有图标,没有一个团队为它开过无数次评审会,没有人纠结过扫描动画的帧率该设成多少。它没有故事、没有性格,甚至没有面孔。它只是某个功能的临时载体,用完即走。

你可以再起一个对话,再生成一个;可以拥有一百个这样的工具,每一个都完美贴合当下的需求。但大概不会再有人,像当年第一次打开 DaisyDisk 那样,对着那张旭日图多看一会儿,然后决定为它写一篇博客。

unsetunset企业那头:从搭积木到一句话unsetunset

企业的场景反而最干脆。这些年,No-Code、Low-Code 已经证明了价值:业务主管能在 Airtable 里搭出一套活动管理,运营能在简道云里拖出一条审批流,不必等 IT 排期。但用过的人都知道,“搭”本身仍是负担——数据表、视图、触发器、集成逻辑,每个平台都有自己一套概念;搭到第十个应用,前九个还等着维护;一旦超出组件库,又退回 Excel 和“将就”。No-Code 解决了“没有 IT 也能做”,却没解决“做”这件事本身的累。

Mini-app 想再往前一步:你不在平台上搭东西,只是说一句话,一个能把事做成的应用就出现在面前。前面那些产品,已经能在消费端做出这样的东西;但把它真正铺进企业的日常,目前还只是个设想。不妨想一下,它若在企业里落地,会发生什么。

那些从没被“数字化”过的小需求,会第一次有个轻量的容器——仓库主管扫码入库、店长一键排班、HR 让新人入职当天自动收到一份按岗位定制的清单。它们太小,不值得买软件,过去只能活在 Excel、微信和口头交代里。SOP 也不再是一份要自己读、自己执行的 PDF,而是一个带你一步步走、该审批时弹出审批、该校验时自动检查的东西;流程改了,不必群发“请重新阅读”,改一句描述,应用自己就变了。

这一切在企业里走得比消费端更远,是因为这里从不在意软件的“样子”。软件的存在感,体现在你不得不操心它的时刻:采购哪套、安排谁去学、何时升级、出事找谁。能力被一句话即时生成后,这种操心就消失了——你不必知道它叫什么、谁做的,只关心事情做完了没有,就像你不关心电是怎么来的,只关心灯亮没亮。

💡 但企业的这种“冷漠”,恰恰说明软件在这里从未被当作作品——它只是工具。所以当工具可以被一句话生成时,没有人会回头看一眼。于是企业越来越愿意为结果付费,而不为一个有名有姓的软件;这一头,本就没有什么“作品”需要被悼念。

unsetunset但这条线,并不通向所有软件unsetunset

前面我说,这条线没有理由停在小处。就生成能力而言,这话大概没错——能被“说”出来的东西,确实在不断变大、变复杂。但“能被生成”并不等于“会以用完即走的方式存在”。更准确地说,被吃掉的从来不是“整个软件”,而是软件里的某一层。

几乎每个产品都能拆成两层:一层是可生成的“胶水”——界面、流程、增删改查的逻辑、能被一句话重做的内容;另一层是难生成的内核——要么是确定性与问责(同样输入必须同样输出、出了事有人负责),要么是被许多人共享、只有唯一事实来源的数据与网络,要么是被精心设计、值得为它本身买单的体验。

前面那些例子——看磁盘占用、一份部门 SOP——之所以一句话就能生成,正因为它们几乎全是这层“胶水”,没有什么内核。一旦内核够重,情况就不同了:游戏的内核是那个被打磨出来的整体,越精致越不可替代;操作系统、数据库、支撑银行与电网的关键系统,内核是正确、安全与可追责,“可抛弃”在这里恰恰致命;SaaS 则表面是软件、内核其实是服务——被对话吃掉的,往往只是它最上层那张薄薄的“工具皮”,也就是上一节那个设想里会被 mini-app 接手的表单与流程,而它底下持续运转的后台、沉淀的数据、成千上万人的协同,很难凭一句话长出来。

说到底,溶进对话里的,是软件作为“工具”的那一层;留得下来的,是它作为作品、作为服务、作为公共基础设施的那一层。

unsetunset“软件已死”的真正含义unsetunset

“软件已死”,不是说软件消失了。恰恰相反,它会像空气一样,无时不在地运转。改变的,是它存在的方式。

软件作为独立商品,作为边界清晰的产品,作为有名字有面孔有版本号的实体——那个时代正在落幕。Andreessen 预言的“软件吞噬世界”已经完成,接下来,轮到软件自己被吞噬:被对话、被意图、被一种不需要“安装”和“购买”的能力交付方式所吞噬。

所以,“软件已死”要收紧来说:死的不是软件,而是软件曾经的一种活法——作为一件可以拥有、却也用完即弃的私人物品。可偏偏是这种活法,长久以来定义了我们和绝大多数日常软件的关系。

✨ 软件已死,能力永生。

那个需要被采购、命名、学习、维护的“实体”消失了,可它一直承载的能力没有——反而挣脱出来、四处生长:消费端是你随口生成的一个个小工具,企业里是散落在各部门缝隙中的微型应用。它们不必被看见,也不必被记住,只需在你需要的那一刻,把事情做成,重要到无所不在,平凡到无人提及。

也许某一天,人们不再打开应用商店,只是向某个智能环境描述一个需求,能力随即出现。传统软件工程那套仪式——需求评审、技术设计、开发排期、测试用例、上线流程——大部分会像手工抄经一样,成为只在历史里出现的东西;工程原则不会消失,只是被编码进生成过程本身,不再由人一步步执行。

方便吗?极其方便。高效吗?毫无疑问。

只是在那幅景象里,找不到 DaisyDisk 的位置,也找不到那个愿意为图标设计买单、为一个交互细节而感动的年代。这不是保守,也不是抵制变化——只是在拥抱那个更高效、更即时的未来之前,那些有名字、有面孔、有性格的软件,值得一段认真的告别。

unsetunset站在分界线上unsetunset

Jaade 是我个人的一个尝试,本身也是这场转变的一部分。它提供了一种新的可能:让任何人在对话里创造属于自己的工具。但它想成为的,不只是一台冷静的效率机器——这也是为什么它叫“环境”,而不是“工具”。它希望是一个可以对话、可以一起迭代、一起思考的空间,而不只是一个指令输入框。

如果你对这条分界线上的风景感兴趣,欢迎来看看。不需要兴奋,也不需要宣誓信仰,只是来看看这个世界正在怎样变化。我们可以一起观察,一起审视,偶尔,也一起怀念。

软件已死。但在这句话彻底成真之前,还有时间,再好好看看它曾经的样子。

💬 你手机里有没有一个 app,你很久没打开,却一直舍不得删?它叫什么?欢迎在评论区聊聊。