로컬 데이터 소유와 클라우드 협업, 둘 다 잡을 수 있다. CRDT 기술이 미래를 이끈다.
지역 우선 소프트웨어: 클라우드에도 불구하고 당신의 데이터를 소유하세요 현대에는 온라인 협업이 매우 쉽게 이루어집니다. 구글 도큐먼트로 문서, 스프레드시트, 프레젠테이션을 협업하고, 피그마에서 사용자 인터페이스 디자인을 공동으로 작업하며, 슬랙으로 동료와 소통하고, 트렐로로 업무를 추적합니다. 이러한 클라우드 앱은 이전 세대 소프트웨어보다 훨씬 뛰어난 협업 기능과 모든 기기에서 데이터에 접근할 수 있는 편리함을 제공합니다. 그러나 클라우드 앱에는 몇 가지 문제가 있습니다. 크리에이티브 프로페셔널들은 종종 클라우드 앱의 단점을 지적합니다. 창작 활동에서는 깊은 감정적 연결이 필요합니다. 이는 비주얼 아트, 음악, 시뿐만 아니라 기술 주제 설명, 복잡한 알고리즘 구현, 사용자 인터페이스 디자인, 팀 리더십 등 다양한 활동에도 적용됩니다. 이러한 창작물은 미래에 참고 자료나 포트폴리오로 활용되므로, 자신의 데이터에 대한 완전한 소유권이 중요합니다. 불행히도, 클라우드 앱은 이러한 소유권을 제약합니다. 클라우드 제공자가 데이터의 주인이 되므로, 서비스가 중단되면 데이터에 접근할 수 없습니다. "클라우드는 결국 다른 사람의 컴퓨터일 뿐"이라는 말이 이런 상황을 잘 요약합니다. "옛날 방식"의 앱, 즉 로컬 컴퓨터에서 실행되는 프로그램들은 여전히 많이 사용됩니다. 텍스트 편집기, 통합 개발 환경(IDE), 버전 관리 시스템(Git) 등이 여기에 해당합니다. 이러한 앱은 로컬 디스크에 파일을 저장하므로, 사용자는 데이터에 대해 완전한 제어권을 갖습니다. 네트워크 연결 없이도 데이터에 접근할 수 있고, 장기적으로 보관할 수 있습니다. 결론적으로, 클라우드는 협업을 편리하게 하지만, "옛날 방식"의 앱은 데이터 소유권을 제공합니다. 그러나 두 가지 장점을 모두 누릴 수 있을까요? 우리는 "지역 우선 소프트웨어"라는 개념을 제안합니다. 이는 로컬 저장소와 로컬 네트워크를 우선으로 하여, 데이터에 대한 완전한 소유권을 유지하면서도 클라우드 앱의 혜택을 누릴 수 있는 소프트웨어입니다. 지역 우선 소프트웨어의 7개 이상 즉시 반응: 사용자의 작업이 바로 손끝에서 이루어집니다. 서버를 통해 데이터를 가져오는 데 걸리는 시간이 없으므로, 사용자는 즉시 결과를 볼 수 있습니다. 다중 기기 지원: 사용자는 여러 기기에서 작업할 수 있습니다. 로컬 저장소를 통해 데이터를 동기화하여, 스마트폰, 태블릿, 노트북에서 모두 작업할 수 있습니다. 오프라인 가능: 인터넷 연결이 불안정하거나 없는 환경에서도 작업할 수 있습니다. 데이터는 로컬 디스크에 저장되므로, 오프라인 상태에서도 접근이 가능합니다. 무선 협업: 실시간 협업이 가능합니다. 여러 사람이 동시에 문서를 수정해도 충돌 없이 작동합니다. 장기 보존: 데이터는 오랜 시간 동안 접근 가능합니다. 회사가 사라져도 데이터는 안전하게 보관됩니다. 보안과 프라이버시: 데이터는 기본적으로 보안性和隐私性得到保证。本地设备仅存储您自己的数据,避免了集中式云数据库的攻击风险。 用户控制: 您对数据拥有最终的所有权和控制权。本地优先应用程序将数据存储在您的本地系统上,您可以在任何时间进行备份、复制或删除。 现有数据存储和共享模型 文件和电子邮件附件: 优点: 快速、离线工作、长期保存、用户控制 缺点: 多设备支持差、协作困难 纯网络应用 (如 Google Docs, Trello, Figma, Pinterest 等): 优点: 多设备支持、实时协作 缺点: 速度慢、离线工作差、长期保存和用户控制不足 云文件同步产品 (如 Dropbox, Google Drive, Box, OneDrive 等): 优点: 快速、离线工作、长期保存、用户控制 缺点: 实时协作能力弱 Git 和 GitHub: 优点: 快速、离线工作、长期保存、用户控制 缺点: 实时协作能力弱、非文本文件支持差 开发者基础设施选择 纯网络应用 (薄客户端): 优点: 零安装、多设备支持、实时协作 缺点: 速度慢、离线工作差、长期保存和用户控制不足 移动应用与本地存储 (厚客户端): 优点: 快速、离线工作 缺点: 协作能力弱、多设备支持有限 后端即服务 (BaaS) (如 Firebase, CloudKit, Realm): 优点: 快速、多设备支持、离线工作 缺点: 实时协作能力弱、长期保存和用户控制不足 CouchDB: 优点: 离线工作、长期保存 缺点: 多设备支持有限、协作能力弱 向更好的未来迈进 我们发现了一些有潜力实现本地优先理念的技术,特别是冲突自由复制数据类型(CRDTs)。CRDTs是一种从学术研究中发展出来的分布式系统算法,能够在多个用户之间无缝合并数据,而无需中央服务器。 我们的实验室开发了三个基于 CRDTs 的原型应用:Trellis(看板应用)、Pixelpusher(协作绘图应用)、PushPin(多媒体画布应用)。这些原型实验表明,CRDT 技术是可靠的,用户的离线体验非常出色,开发者可以利用函数响应式编程(FRP)来简化协作和数据同步。 结论 计算机是人类最重要的创意工具之一。我们在追求更好工具的过程中,将许多应用迁移到了云端。虽然云软件在很多方面优于传统软件,但数据所有权的问题依然存在。通过实现本地优先软件,我们可以让用户体验到云软件的好处,同时保留数据的所有权和控制权。 然而,要实际实现本地优先软件还需要更多的努力。我们希望分布式系统和编程语言研究人员、人机交互(HCI)研究人员以及实践者们共同努力,探索这一新的未来方向。我们相信,随着 CRDT 技术的成熟,本地优先软件将会带来巨大的市场机遇,并为用户提供更安全、更可靠、更自主的创作环境。 行业内部人士的评价 行业内部人士认为,本地优先软件的概念具有很高的潜力。虽然目前的技术仍处于实验阶段,但 CRDTs 和其他相关技术的发展为实现这一目标提供了坚实的基础。公司如 Ink & Switch 正在积极研发,希望通过开放源代码项目如 Automerge 来促进这一领域的发展。随着技术的进一步成熟,本地优先软件有望成为未来软件开发的主流趋势。