本地优先软件:重新定义数据所有权与协作
引言:云时代的协作与所有权困境
在当今数字化时代,云应用如Google Docs、Trello和Figma已经彻底改变了我们的工作方式。它们提供了无缝的实时协作能力,让团队成员可以在不同地点同时编辑同一文档,极大地提高了工作效率。同时,云服务也让我们能够从任何设备访问自己的工作,实现了真正的跨平台体验。
然而,这种便利是有代价的。当我们将数据存储在"云端"——实际上是存储在他人的服务器上时,我们就失去了对自己数据的直接控制。如果服务中断,我们将无法访问自己的文件;如果公司倒闭,我们可能永久失去这些数据。正如一句流行的 bumper sticker 所说:"没有什么云,只是别人的电脑。"
对于创意专业人士而言,这种数据所有权的丧失尤为令人担忧。当你投入大量创意精力完成一项工作时,你会对这些数据产生深厚的情感依恋。无论是技术文档、复杂算法、用户界面设计,还是团队管理策略,这些创造性成果都值得被妥善保存和拥有。
本地优先软件(local-first software)的理念正是为了应对这一困境而提出的。它旨在结合云应用的协作便利性和传统本地软件的数据所有权优势,让用户能够同时享受两者的最佳体验。
本地优先软件的七大核心理想
本地优先软件将本地存储(计算机内置硬盘)和本地网络(如家庭WiFi)置于远程数据中心服务器之上。在云应用中,服务器上的数据被视为主要的、权威的副本;而在本地优先应用中,用户设备(笔记本电脑、平板电脑或手机)上的数据副本被视为主要副本。服务器仍然存在,但它们只保存数据的次要副本,以协助多设备访问。这种视角的转变具有深远的意义。
1. 无延迟体验:你的工作触手可及
现代软件常常比前几代软件感觉更慢。尽管CPU速度不断提升,但用户输入(如点击按钮或按键)与相应结果显示之间往往存在明显延迟。对于云应用而言,由于数据的主要副本存储在服务器上,所有数据修改和许多数据查询都需要往返服务器,这受到光速的物理限制。
本地优先软件则不同:由于主要数据副本存储在本地设备上,用户永远不需要等待服务器请求完成。所有操作都可以通过读写本地磁盘文件来处理,而与其他设备的数据同步则在后台安静地进行。这意味着软件可以近乎即时地响应用户输入,不再需要显示加载动画,让用户能够随时处理自己的数据。
2. 多设备自由:工作不局限于单一设备
当今用户依赖多种计算设备完成工作:在智能手机上捕捉灵感,在平板电脑上整理思路,在笔记本电脑上完成文档。因此,本地优先应用虽然将数据存储在每个设备的本地存储中,但也需要在用户所有工作设备之间同步这些数据。
各种数据同步技术已经存在,大多数跨设备同步服务还会在服务器上存储数据副本,这提供了方便的异地备份。只要每个文件一次只由一个人编辑,这些解决方案就能很好地工作。
3. 离线优先:网络是可选的
个人移动设备经常处于网络可用性变化的环境中:不可靠的咖啡店WiFi、飞机上、穿越隧道的火车上、电梯或停车场中。在发展中国家或农村地区,互联网接入基础设施有时也不完善。在国际旅行时,许多移动用户会禁用蜂窝数据,因为漫游费用高昂。
"老式"应用在没有互联网连接的情况下工作良好,但云应用通常在离线时无法工作。尽管"离线优先"运动多年来一直鼓励Web和移动应用开发者改进离线支持,但在实践中,为云应用改造离线支持非常困难,因为为以服务器为中心的模型设计的工具和库不容易适应用户在离线时进行编辑的情况。
本地优先应用将数据的主要副本存储在每个设备的本地文件系统中,因此用户可以随时读取和写入这些数据,即使处于离线状态。然后在网络连接可用时与其他设备同步数据。数据同步不一定必须通过互联网:本地优先应用也可以使用蓝牙或本地WiFi与附近设备同步数据。
4. 无缝协作:与同事轻松协作
协作通常需要多人为文档或文件贡献内容。然而,在老式软件中,多人同时处理同一文件会产生问题:结果往往是冲突。对于文本文件(如源代码),解决冲突既繁琐又令人讨厌;对于复杂文件格式(如电子表格或图形文档),任务很快变得非常困难或不可能。因此,协作者可能必须事先约定谁将编辑文件,并且一次只能有一个人进行修改。
云应用如Google Docs通过允许多个用户同时编辑文档,无需通过电子邮件来回发送文件,也无需担心冲突,极大地简化了协作。用户已经开始期望各种应用都具备这种无缝的实时协作功能。
本地优先应用的理想是支持与当今最佳云应用相当或更好的实时协作。实现这一目标是实现本地优先软件的最大挑战之一,但我们相信这是可能的。此外,本地优先应用可以支持各种协作工作流:除了多人实时编辑同一文档外,有时一个人提出临时更改,由其他人审核并选择性应用也很有用。
5. 长期保存:数据的长久生命力
数据所有权的一个重要方面是你可以在未来很长一段时间内继续访问数据。当你使用本地优先软件进行工作时,你的工作应该可以无限期地继续访问,即使生产该软件的公司消失了。
"老式"应用只要你有数据副本和运行软件的方法,就可以永远工作。即使软件作者破产,你仍然可以运行软件的最后一个发布版本。即使操作系统和运行它的计算机变得过时,你仍然可以在虚拟机或模拟器中运行软件。随着存储介质的发展,你可以将文件复制到新的存储介质上并继续访问它们。
相比之下,云应用依赖于服务的持续可用性:如果服务不可用,你将无法使用该软件,也无法再访问用该软件创建的数据。这意味着你在打赌软件的创建者将长期支持它——至少和你关心这些数据的时间一样长。
本地优先软件提高了数据的 longevity,因为你的数据以及读取和修改数据所需的软件都存储在本地计算机上。我们认为这不仅对你自己很重要,对未来想要阅读我们今天创建的文档的历史学家也很重要。没有数据的 longevity,我们可能会创造出Vint Cerf所说的"数字黑暗时代"。
6. 默认隐私安全:保护你的数据
云应用架构的一个问题是它们将所有用户的数据存储在集中式数据库中。这种大量的数据集合对攻击者来说是一个有吸引力的目标:恶意员工或入侵公司服务器的黑客可以读取和篡改你的所有数据。这种安全漏洞令人遗憾地非常普遍,使用云应用时,我们不幸地受制于服务提供商。
虽然Google拥有世界级的安全团队,但遗憾的是,大多数公司并非如此。而且,虽然Google擅长保护你的数据免受外部攻击者的侵害,但公司内部可以以多种方式使用你的数据,例如将你的数据输入其机器学习系统。
本地优先应用在核心层面内置了更好的隐私和安全性。你的本地设备只存储你自己的数据,避免了集中式云数据库存储所有人的数据。本地优先应用可以使用端到端加密,因此任何存储你文件副本的服务器只能保存它们无法读取的加密数据。
现代消息应用如iMessage、WhatsApp和Signal已经使用端到端加密,Keybase提供加密文件共享和消息传递,Tarsnap采用这种方法进行备份。我们希望看到这一趋势扩展到其他类型的软件。
7. 用户终极控制:数据归你所有
使用云应用时,服务提供商有权限制用户访问:例如,在2017年10月,几名Google Docs用户被锁定在其文档之外,因为自动化系统错误地将这些文档标记为滥用。在本地优先应用中,数据的所有权归用户所有。
需要明确的是,这里的"所有权"不是指知识产权法律意义上的所有权。例如,文字处理器应该对正在编辑的文本的版权归属问题不感兴趣。相反,我们指的是用户对数据的自主权、自治权和控制权。你应该能够以任何方式复制和修改数据,记录任何想法,任何公司都不应限制你可以做什么。
根据《欧洲人权公约》,你的思想和意见自由是无条件的——国家永远不得干涉,因为它只属于你——而表达自由(包括言论自由)在某些方面可能受到限制,因为它影响其他人。像社交网络这样的通信服务传达表达,但创意人士的原始笔记和未发表作品是发展思想和意见的一种方式,因此值得无条件保护。
在云应用中,你访问和修改数据的方式受到服务提供商的API、用户界面和服务条款的限制。使用本地优先软件,构成你数据的所有字节都存储在你自己的设备上,因此你可以自由地以任意方式处理这些数据。
数据所有权带来了责任:维护备份或其他防止数据丢失的预防措施,防范勒索软件,以及文件档案的一般组织和管理。对于引言中介绍的许多专业和创意用户,我们认为为了获得更多所有权而承担更多责任的权衡是值得的。考虑一项重要的个人创作,例如博士论文或电影的原始素材。对于这些,你可能愿意承担存储和备份的责任,以确保你的数据安全并完全在你的控制之下。
在我们看来,保持对数据的控制和所有权并不意味着软件必须是开源的。尽管修改软件的自由增强了用户的自主权,但商业和闭源软件也有可能满足本地优先的理想,只要它不过度限制用户对其文件的操作。这种过度限制的例子包括禁用打印操作的PDF文件、干扰复制粘贴的电子书阅读器,以及媒体文件的DRM。
为何需要本地优先软件?
创意工作者的数据主权需求
创意工作者对其作品有着天然的所有权意识。无论是设计师、作家、开发人员还是其他创意专业人士,他们的工作不仅仅是产出,更是个人表达和价值的体现。本地优先软件尊重这种主权,让创作者能够完全控制自己的作品,而不是将其交给第三方保管。
避免"数字黑暗时代"
随着数字内容的爆炸式增长,我们面临着一个严峻的问题:这些数字资产能保存多久?历史上,文字记录在黏土板上可以保存数千年,而今天的数字文档可能在几十年后就无法访问。本地优先软件通过将数据存储在用户控制的设备上,并使用开放、持久的格式,有助于防止这种"数字黑暗时代"的到来。
平衡便利性与控制权
本地优先软件不排斥云技术,而是重新定义了云的角色。云不再是数据的唯一存储地,而是作为设备间同步和备份的辅助工具。这种模式既保留了云协作的便利性,又恢复了用户对数据的控制权,实现了两者的理想平衡。
结语:软件设计的新范式
本地优先软件代表了一种软件设计的新范式,它挑战了当前以服务器为中心的主流模式。通过将数据所有权归还给用户,同时不牺牲协作便利性,本地优先软件为未来的软件发展指明了一条新道路。
这种方法不仅有利于个人用户,也有利于整个数字生态系统的健康发展。它鼓励软件开发者专注于用户体验和数据安全,而不是通过控制用户数据来获取商业利益。
随着技术的不断进步,特别是CRDTs等分布式数据结构的成熟,我们有理由相信本地优先软件将成为未来主流的软件形态。它不仅是对当前云服务模式的改进,更是对软件本质的回归——软件应该是用户的工具,而不是用户的主人。
在这个数据日益重要的时代,本地优先软件为我们提供了一种既能享受数字便利,又能保持数据主权的方式。这不仅是技术的进步,更是对数字人权的重要保障。
❝
欢迎大家关注公众号:极客悟道
每天不定时分享开源新品,经验分享❞