环境很重要。为了把工作与生活做到最好,我们需要能展现各自独特潜力的空间。吉他制作工会把锯子、锤子、凿子和锉刀摆放在工作坊里,也会按需制作新工具。家庭厨师则逐渐收集趁手的刀具、砧板和锅具,还会装挂钩、挪架子来配合自己的流程。这些日常场景表明,在物理世界里,塑造环境之所以自然而然,是因为物理现实本身是可塑的。
正文
我们想适应环境
环境很重要。为了出色工作和生活,我们需要能发挥各自独特潜力的空间。吉他匠人把锯、锤、凿、锉按习惯摆放,还可按需制作新工具,如垫木或改形的钳子。

家庭厨师逐年凑齐刀、砧板、锅具,并在天花板装钩、移动隔板来适应流程,无论是平日晚餐还是周末聚餐。

物理世界中,打造环境很自然,因为物理现实是可塑的。小调整(贴便签、挪抽屉)瞬间完成无需许可;大改变(建工坊、改厨房)可自己动手或请工匠。Stewart Brand 在《如何建筑学习》中说:“年龄加适应性使建筑被喜爱。建筑向居住者学习,居住者也向它学习。”
大规模生产的软件太僵化
如今我们在代码而非原子构建的环境里花更多时间,获得了跨大陆协作等能力,却失去了适应环境、使之属于自己的能力。
一位作者所在的团队曾用墙上索引卡跟踪工作,不断演化看板:胶带线移动、清单出现、特殊卡片区形成。后来换用网页问题跟踪器支持远程协作,却无法建模特殊卡片区,流程改变停滞。计算机化导致自主权丧失。

医生 Atul Gawande 写道,医疗计算机化致倦怠创纪录。医生曾跳过纸质表无关字段,现在软件强制填写且无法修改规则。一名医生不在于多花时间,而在于“毫无意义”。

向开发者反馈通常无即时行动。集中团队无法满足所有需求,塞太多功能则臃肿。Gawande 讲一名神经外科医生与 IT 分析师合作改造本部门病历系统,建成更快的神经科专用界面,医生重获控制感。
但这类故事属例外,因为部署软件的工具将用户当被动接收者而非共同创造者。软件是单体应用而非灵活工具包;定制需编程技能且多数闭源;应用商店面向公司分发而非爱好者分享。这是工业量产而非小作坊。
量产软件有收益:廉价精致应用,可靠、无障碍、安全。但僵化妨碍人,你越异于平均用户,定制的收益越超专业打磨。人人独特,自主权重要。
我们的目标:可塑软件
我们设想新计算生态,用户作为共同创造者拥有自主权。可塑软件指:任何人以最小摩擦按需适配工具的软件生态。
- “软件生态”指围绕软件与用户的广大技术文化环境。
- “任何人”指广泛可及,也重视与本地社区合作。
- “适配工具”含从小修小补到深度改造到新造协调工具,非从零开始。
- “最小摩擦”关键:编辑应快、轻,最好在需求出现时当场完成。
现有途径
设置
设置常见,但若无对应选项便卡住。设置倾向成脱节勾选框长列表。

插件
插件让第三方扩展应用,易安装他人成果,API 稳定合约。但插件系统只能在授权方式改行为,无对应接口则无用。多数应用根本无插件 API。且从安装到制作跨度大,各应用插件系统互不兼容。

模组修改
无许可模组(如浏览器扩展)可干预界面注入行为,甚至对抗原开发者意愿(如广告拦截)。但需逆向工程、难维护、同应用不同模组常冲突。平台限制其能力:浏览器扩展不能改服务端行为。且安装与制作间鸿沟大,需离开浏览器写代码打包。

开源
开源让用户拥代码、改代码。但改严肃代码库需大量专长,即便改按钮颜色。熟练程序员搭环境读代码也非随意可为。

AI 辅助编程
大语言模型将自然语言转代码,记者造学校午餐 app,学生造造林跟踪站,作者用 AI 造翻译 app 和健身计时器。

AI 潜力令人兴奋,但单靠 AI 生成代码不能解决所有可塑性障碍:如何改现有工具而非造新孤岛?AI 工具如何组合共享数据?如何精确直接控制微小修改?从提示生成云应用不解决这些。将 AI 编码工具带入当今生态,犹如带厨师去美食广场——封闭软件中 AI 助手帮不上用户。需超越美食广场到厨房般开放创造。
从用户到创造者的平缓斜坡
可塑不意味人人从零造工具。合理的是先用现成工具,发现不合需时选择修改,从被动用户渐成编辑者、创造者。
MacLean 等 1990 年论文提出“平缓斜坡”:定制能力深度为 x 轴,所需技能为 y 轴,骤学即悬崖。目标应是每增一点定制力只需增一点学习。


他们做的 Buttons 系统:初阶移按钮改色,中阶编辑变量值做简单 UI,高阶用 Lisp 编程。每定制用最简单技术,全编程最后手段。
电子表格即范例:收复杂表可先看或改输入格,再改格式加标签,深用改公式加格。它具就地工具链(无需另装开发环境)和粗糙美学,使人敢改。

HyperCard 用显式级别:1 只读,2-3 文本图形直接编辑,4 加按钮链接,5 全 HyperTalk 编程。级别作护栏。


浏览器扩展从安装到制作是悬崖。

轻量技术可平滑:Stylish、Arc Boosts 在浏览器内建样式主题;宏系统录放操作;Tampermonkey 直接改用户脚本。


两种策略:从右降技能(友好语法、实时编程等),或从左增能力(媒体编辑器加可选编程,如表格、HyperCard、Notion)。不必人人到顶,业余者可得他人助,斜坡支持协作。
工具,而非应用
应用是牛油果切片器
牛油果切片器三合一专做一事,无练习无危险但无用其他。若每任务一工具,塑料成山。


刀可切牛油果、鸡胸、洋葱等,需学安全但值得,因是通用工具。

许多应用是牛油果切片器:捆绑功能针对特定用例(行程、健身、食谱),常处理不好,且跨应用手动协调难。应用模型有益(凝聚体验、隔离数据保安、付费模式),但复杂工作流隔离致问题。如何重导向更通用可组合工具?两子问题:共享数据、组合 UI。
工具间共享数据
现代云每应用管自己数据孤岛,行程计划碎在多 app,增摩擦。共享数据则赋能用户组合工具:桌面文件系统让你不同工具编同一文件(Lightroom 调光,Preview 涂注);不同协作者用偏好工具(VSCode 与 emacs 编同一 repo)。Airtable 多视图同库。Smalltalk 图像含状态与代码对象,新工具可操作之。Webstrates 浏览器实时协作,不同编辑器同编论文。
组合用户界面
应用占窗口建孤立世界,多应用需切换体验割裂。需打破数据与应用交互环境控制。复合文档系统如 OpenDoc、OLE 让作者嵌多媒质,选部件就地编辑,开放可引新媒质。但嵌编辑器不足:如 Tchernavskij 问如何重用一应用的取色器到另一应用?取色器非关单部件而关全文。他提 entanglers 动态连 UI 元素;Varv 用事件触发列表。Dynamicland 用物理世界组合:纸带码数据放桌上胶合,经全局库通信,可加新工具拦截消息改行为。
社区创造
个人主义视野有限。大改动需时技能,非人人愿成专家。且我们共进:产品团队需单项目系统,医院科室需单表单系统。应帮社区建维护共享方案。合适基础设施下,相似需求者全球交换协作,本地社区(公司、家庭)建适需软件。本地语境软件更易:不需工业级,直接响应用户即可。Clay Shirky 称“情境软件”,Robin Sloan 称“家常菜应用”。自由软件社区启示:如 Mastodon 小实例改代码加社区功能。需技术支持社会技术系统,让小代码块共享协作。
Ink & Switch 原型
我们多年建研究原型探可塑软件,非商用,而是深入理解技术并从深度使用中学。分两线:基础架构;动态文档。
可塑性的基础设施
基于本地优先哲学与 Automerge 同步 JSON。
PushPin:可扩展媒体画布
PushPin 网页协作画布,提“文档函数响应式编程”(DFRP):React UI 组件由 Automerge JSON 文档支持。加组件不需后端。解耦数据 UI 易定义新界面。挑战:视图选择硬编码不足;嵌入模型隔离强但难共享悬停等上下文,不支持无许可改。
Cambria:协调跨工具的模式兼容
PushPin 中模式升级破兼容。Cambria 解耦读写模式:各工具写己模式,按需译他模式,实时翻译非一次性迁移。
Farm:代码即数据
Farm 用 Automerge 存用户数据与 Elm 代码,流畅修改。但协作挑战:编辑不破他人,并行难。
Patchwork:版本控制与自举
Patchwork 基于 PushPin/Farm,数据代码皆 Automerge,加版本控制如分支。我们“自举”:内部知识工作全在 Patchwork,包括写此文。例:写文时发现过长,造“章节字数统计器”集成进工作流,AI 辅助数分钟完成,经链接分享给协作者。AI 补可塑环境:聊天造小工具自动持久多用户协作。挑战:轻量版本控制用于代码不全;质量期望管理;嵌入模型有限需更富通信(如通用评论工具需报选区)。
动态文档
Potluck:用于食谱规划的动态明文
Potluck 让文本笔记加动态行为(缩放食材、定时)。用户自然语法写,检测器解析结构。AI 可起草检测器公式供用户改。问题:任意明文解析结构繁。
Embark:用于旅行规划的动态大纲
Embark 用层次大纲基格式,加结构化信息(地图位置)作输入计算路线天气,嵌地图日历视图。关键:富共享上下文嵌入模型使地图读大纲位置、悬停同步。张力:非结构化与结构化表示。
迈向更好的未来
我们描愿景:赋能人造工具、移权本地社区。挑战:平缓斜坡、破应用为组合工具、聚焦协作群。尚有隐私安全、商业模式、文化挑战。需研究者、平台开发者、产品者共推。可塑软件如老房随需演化,承载使用痕迹。人人有权演化数字环境,盼你同建可塑软件。
评论
这场讨论整体弥漫着对“可塑软件”时代的怀念,多数人认同现代应用过于封闭、用户能动性被剥夺;分歧主轴在于这是否只是怀旧滤镜、是否只有少数极客真正在意,以及监管、AI、文件优先等路径能否真正恢复可塑性。
认为现代应用已变成密封黑箱,怀念可脚本、可换肤、可改二进制的时代
- 较多人:从 Winamp 皮肤、脚本化一切、改二进制,到 Emacs 级定制,现代 SaaS 像租来的密封盒子,没有逃生舱;那时的电脑更像环境而非产品。(@finn888、@wiltemperley、@Norwellio、@dunlin、@fenwick、@Driftbench) > 现代应用感觉像密封的黑盒,没有逃生舱。(@finn888)
认为软件从未真正可塑,用户能动性只是玫瑰色怀旧
- 少数人:工作几十年从未觉得软件“可塑”;早年输入程序只是当时的分发方式,并非刻意追求可塑。今天可以更好,但当年问同样问题,答案也是“当然可以更好”。(@dmdiefjeidnn) > 软件从来不是可塑的,用户能动性只是你们用来自我安慰的怀旧故事。(@dmdiefjeidnn)
认为多数用户根本不会自定义,可塑软件只服务少数极客
- 少数人:大多数人工作和生活都沿用烂软件,或像买宜家一样装饰一下;只有一小部分用户愿意多走一步,去定制理想界面。(@piterrro) > 大多数人不会搭建自己的方案,他们只是跟随难用的软件,或像用宜家一样装饰一下。(@piterrro)
主张监管强制开放第三方客户端和硬件文档
- 较多人:应强制大公司允许第三方客户端,并要求公开硬件文档,否则除 Android 和 iOS 外难有第三平台;Asahi Linux 已证明可能,但仍难与官方驱动竞争。用户应能刷电视固件、重编失去的应用和游戏。(@apatheticonion) > 如果我为 YouTube 写一个更好的客户端就可能被起诉,这不该是常态。(@apatheticonion)
指出操作系统故意隐藏路径、URL 和文件扩展名,破坏可复制性
- 较多人:从隐藏扩展名、地址栏变成不可选的面包屑,到隐藏协议和邮件域名,系统在阻止用户知道自己在哪、复制路径;连 Safari 里复制 URL 都做不到,开发者只能打开开发者工具看 HTML。(@jongjong) > 我只不过想看看发件人的域名是否合法,却根本看不到域名是什么。(@jongjong)
认为电子表格才是真正可塑的软件,但替代它只会导致功能膨胀
- 较多人:很多公司做表格替代品,但表格什么都能做,于是只能不断加功能,最终变成一团乱;如果让客户自己定制,同时共享后端和数据,也许能重新简化。氛围编程的自定义功能可能是折中,但还没看到像 Lovable 那样普及的方案。(@rsavage) > 没有标准做法时,你就得为每个人想要的不同用法不断加功能,最后变成一团乱。(@rsavage)
认为 AI 可能终于兑现人人可编程的旧愿景
- 较多人:1980 年代杂志和电视节目曾乐观地认为人人都会写程序,但操作系统和编程语言碎片化让 HyperCard、Visual Basic 等未能普及;最近一年才开始接近那个承诺。(@Razengan) > 最近一年,计算机最初的承诺才开始实现。(@Razengan)
认为 AI 只是新一轮出卖,并未带来真正可塑
- 少数人:所谓理想主义软件宣言,最终也只是像其他人一样向 AI 出卖自己。(@keybored)
认为数据表示和文件优先才是防锁定的关键
- 较多人:展示层是短暂的,数据表示和存储才重要;文件优先(如 Obsidian)让用户保留数据并随时迁移。(@sim04ful、@lucrbvi) > 用户可以把数据原样保留,然后继续自己的生活。(@lucrbvi)
认为可塑软件不是新概念,GPL 与 Unix 哲学早已在解决
- 较多人:GPL 的自由就是让软件尽可能可编辑;Kartik Agaram 的 freewheeling apps 是已实现的例子;Unix“一切皆文件”和 Plan 9 也把可塑性放在核心。(@trashb) > 可塑软件的核心在 Unix 的“一切皆文件”和 Plan 9 中已经存在。(@trashb)
有价值的补充
- TeMPOraL 提出“绕过驱动开发”:当抽象层阻碍合法目标时,就失去被尊重的权利;其子模式“愤怒绕过”指直接穿墙而过。这融合了对抗性互操作、计算自决和黑客精神,是对安全至上主义与“电脑说不”的反叛。
- 微软 Excel 支持单元格多值,被指借鉴了 Ink & Switch 的 Ambsheets 思路。(@willtemperley)
- 该话题在 2025 年 6 月已有一次 114 条评论的相关讨论。(@dang)