他将夏皮罗的论文描述为“一次觉醒”。在crdt中,Kleppmann看到了没有人提供的一类新软件的技术基础。但这些算法对专业程序员来说几乎毫无用处。它们的效率太低,而且缺乏开发人员实际用于制作应用程序的典型工具。Kleppmann意识到,他必须让本地优先的开发人员的生活更轻松,将这个想法从一组数学证明转变为可用于生产的代码。他开始编写一个开源的crdt实现,他称之为Automerge,人们可以自由地使用它来构建应用程序。
几年后,在“本地优先”宣言被黑客新闻(Hacker News)曝光后不久,我看到了这种努力的成果。我在旧金山的一家咖啡馆遇到了彼得·范·哈登伯格(Peter van Hardenberg),他是克莱普曼的合著者之一。和克列普曼一样,他也是在经历了漫长的云计算之旅后重新开始的。他先是作为Heroku创始团队的一员,帮助其他初创公司推出云服务,后来又加入了被收购的Salesforce。他想给我看一个叫Pushpin的应用程序,它被设想成一个数字软木板。
范·哈登伯格在他的iPad上打开了一个空白项目。我在笔记本电脑上下载了同一份文件的副本。我们开始修补,将图像和文本框添加到我们自己的文件中,然后允许它们合并。有时,这种方法可以无缝地工作;其他时候,更改停止加载,或者像素因拨号时代延迟而拖拽。Pushpin给人的感觉就像一个玩具,是几个眼睛明亮的斯坦福大学(Stanford)本科生可能会在公共休息室编写的那种应用程序,他们的愿景是获得种子轮融资,然后尴尬地搁置起来。
但范·哈登堡一点也不尴尬。他相信,本地优先版本的Slack、Discord、Google Docs和Photoshop的技术基础已经奠定。更好地设计应用程序、日历、预算。还有更复杂的程序,如果它们能让Automerge更有效率的话。所有这些协作应用程序都有可能进行私密的端到端加密,因为没有服务器会碍事。crdt有技术上的限制,而且有很多应用云服务会好得多。但对他来说,原型机就像是一场革命。我们之间没有服务器。然而,它奏效了。主要是。我们是两个同行,就像互联网的第一批砖匠想要的那样。
当我们在圣路易斯再次见面时,范·哈登伯格的远见略显明显。科技巨头正在下滑。meta的股价跌至7年低点。推特正处于埃隆·马斯克的敌意收购之中。克列普曼每周花几个小时担任Bluesky的技术顾问。Bluesky是Twitter的一个分散式实验,现在突然成为人们关注的焦点,准备成为它的竞争对手。它的“联合”设计承诺让人们可以选择离开那些对他们不好的服务器和服务。Bluesky没有使用crdt,因为这对于协调数百万社交媒体用户的信息来说太慢了,但目标是相似的:与“别人的电脑”建立更好的关系。计算机替代品再次流行起来。
其中,crdt。Strange Loop充满了本地优先的演讲——这让Kleppmann和van Hardenberg感到惊讶,他们直到最近才通过Google提醒和口口相传来跟踪每个项目。crdt也出现在更广阔的世界。《华盛顿邮报》(The Washington Post)的开发人员利用它们构建了一个在主页上排列文章的工具。浏览苹果Notes应用程序代码的人注意到了crdt。广受欢迎的数据科学应用Jupyter Notebooks在谷歌放弃了之前依赖的云服务后,恢复了使用crdt的协作工具。
Strange Loop的演讲者中有一位名叫Brooklyn Zelenka的加拿大开发者,他是一家名为Fission的公司的联合创始人。她回忆说,当她读到“本地优先”的宣言时,“我当时想,这是一个很棒的短语。在此之前,我们有一些尴尬的短语,比如“位置独立性”或“用户拥有的数据”。泽伦卡对web3(使用区块链技术和加密货币的“去中心化”应用程序所采用的绰号)的想法很感兴趣,但她发现其文化“咄咄逼人”,她将其归因于对金钱的关注“如此明显,一直如此”。很高兴能早点进入本地优先。“现在一切都是唾手可得的果实,”泽伦卡告诉我。