早上突然从某个技术群里看到分享Local-First Conf中 Maggie Appleton 的演讲《家酿软件与赤脚程序员》。 很喜欢这个演讲者,用了许多巧妙的比喻!让概念变得非常通俗易懂。 例如,她提到,”homecooked software” (本地自制软件?),指代一些为个人或者小群体“定制”的应用程序,而非面相大规模用户的软件。
首先,local的概念对应着,离“家”不远、熟悉的,令人感到有亲切感、可以信赖的。 而Local-First,这一开发概念强调的是,构建贴近用户、能够满足个人、或者小范围群体用户(例如家人,朋友,领居们)需求的软件。
感觉里面有几个重要的概念,梳理一下的话:
从需要被满足的用户需求上来看,所谓的local(当地)软件的用户,可以小到个人,家庭,甚至展开来说,也可以是某个小群体。它们需要服务的对象,少,但是需要满足的需求却可以更加精确。与之对立的事实上是一些专业的大型软件,它们则是为了满足大多数用户最基本/重要/常见的需求。正因为开发软件(曾经或者仍然)是一件需要花费大量时间和金钱的事情,在追求经济回报的时候,很难满足所有用户的所有需求,此时一些小众的需求很有可能就会被忽视或者牺牲、优化掉。local-first 软件则可以填上这个缺口。
从而就引出了第二点,从软件的开发和维护成本上来看,local的app应该是相对来说简单、轻量,维护起来也更加轻松(时间和花费)的小软件。
第三点,从软件的数据传输方式上来看,local的app应该是以本地的方式使用,而不是依赖于云端。这样一来,有些私人的数据就不必被上传到云端,而是可以被本地保存,数据的安全性和隐私性会得到保障(不用再在使用某些软件前担心隐私泄露又不得不勾选同意所有条款)
简而言之,为local(我周围小范围)的人,解决了local(小范围)的问题。
于是,它们就如同家里烤的小饼干,小点心一样,或许它们不是最华丽、最精致的,但却是最符合你的特定(口味)需求,并且可以完全在你的掌控之中。举一个简单的例子,一些身体健康指标检测的app,或许这些检测数据对于其他人来说并不是那么重要,甚至于其实除了你和你的家人,这个世界上没有其他人会再去使用这个数据。这些个人的数据就完全可以停留在自己家里,而不用上传到云端。并且,观测页面也可以由个人进行定制,只显示自己需要的指标。而不是像大型软件一样,所有用户都看到同样的页面,并且数据也被上传到云端,以某种未知的方式存储在世界的某个角落。
这个概念非常吸引人(至少我),因为如果我们做最极端的假设,每个人用的程序都由自己开发(当有一天软件开发可以如同每个人可以为自己做饭一样简单)。那么,这个概念实际上是赋予用户对其数据和软件全部的主导权和所有权。即,每个人都能够真正掌控自己的数字生活。这包括决定如何使用个人数据、选择或直接定制适合自己需求的软件工具。用户不仅是数据和软件的使用者,更是其合法的拥有者和管理者。在这样的环境中,个人和小型社区的创造力将得到更多自由度,将现在的软件开发进程中被(主动或者被动)忽视的需求填补上。
Maggie 在演讲中提到了Barefoot developers(光脚开发者),这类人并不以成为专业程序员/开发者为职业,但是拥有足够的开发技术、且热衷于动手。最重要的是,他们切实地身处在问题的语境当中,能够深入地理解所需要解决的问题,为自己和社区提供解决方案。
如果需要使得这些”光脚开发者“能够快速开发,实现他们的想法。那么,Local-First的实现,需要能够实现以下几点的基础开发工具:
这个视频来自于第一届Local-First Conf,前几个月在柏林举行了。local-first这个概念对于传统软件开发而言,就如同web3对于web2一样,能够使得软件开发的方式更加开放、丰富、且具有包容性。
有机会可以试着做一个Protocol看看。
https://localfirstweb.dev