1/ 当前的界面看起来有点像这样,它们是僵化的,孤立的,大规模生产的。用户无法轻易地改变界面以适应他们的需求,也不能将它们分解成更小的部分。我们的大部分软件都被这些大型的、类似家电的盒子束缚住了。
2/ 为了使我们的软件具有可塑性,我们需要我们的界面也具有可塑性。
3/ 界面不仅仅是为了“最终”使其变得易变的东西,它们是当前形态的软件的一部分。因此,这方面的进步为努力改变软件提供了机会:灵活的软件,本地优先等。
4/ 从拓扑学的角度看,我们可以看到界面和底层系统之间的1-1关系如何产生一个大而孤立的组织单位。这就是我们已经习惯的"应用"范式。
5/ 我们可以在软件及其界面中观察到其他的拓扑结构,比如云平台的" 1 interface to rule them all "。如果你使用过Google Cloud或AWS,你就会明白这种感觉。
6/ 这种模式产生了一个单一的界面,覆盖了大量的不同系统,设计的初衷是为了提供一种连贯的体验,适合所有用户。我认为这是一个根本无法实现的目标。
7/ 另一种拓扑结构来自于 bring-your-own-client BYOC 的软件:许多客户端与相同的底层系统交互。电子邮件是一个很好的例子,许多客户端共存并与底层协议交互。这为用户提供了更多的选择和自主权。
8/ 然而,当我们从用户的角度看这些拓扑结构时,它们在很多方面都很相似:孤立的界面处于自己的框式窗口中,很难改变,很难拆分和与其他界面元素重新组合。
9/ 这里的论点是,阻碍我们进步的是接口和软件之间的关系,而不是特定的接口本身(尽管我们当然也需要在那里取得进步)。我们需要一种新的接口生成方法。
10/ 现在,让我们看两个观点的结合。首先,空间画布:
11/ 接下来是信息基底 Information Substrates ,这一词由Michel Beaudouin-Lafon在2017年提出。"数据并非孤立存在。它是一种基底的一部分,为解释数据提供了上下文,也为展示和与其交互设定了限制。"
12/ 信息基底不仅是数据结构,它们还有一致的,受限的交互和展示方式。一旦你知道层或时间线如何运作,就不需要重新学习。这种知识往往可以在工具之间传递。
13/ 事实上,画布符合信息基底的所有标准,我认为以这种方式看待它们可以揭示它们的"真实"设计空间。它们不仅仅是工具或白板,而是具有一致语法和语义的数字媒介。
14/ 当画布被视为基底时会变得更有趣,并且它不必用于类似白板的东西。
15 / Integration Domains : 由 Stephen Kell 在我向你们所有人推荐的论文"The Mythical Matched Modules: Overcoming the tyranny of inflexible software construction"中首次提出。
“在电路设计中,工程师们并不期望他们的集成电路直接与其他集成电路连线。相反,有一整套粘合组件的词汇,包括电阻、电容和小型逻辑阵列,形成一个独立的集成领域”。
我强烈推荐这篇论文,但在这里不会详细讨论,只是注意到我稍微借用了他的观点。Kell主要谈论的是软件生产,我想把这个想法用于界面生产。
16/ "集成领域"是我们将组件、部件、模块、单位等组织成系统的地方。在软件中,这可能意味着不再需要导入声明,因为这是集成的关注点,应该在它自己的领域中。 所以这就是一切的汇聚之处。我们可以想象一个专门为接口和交互的集成领域吗? 我认为我们可以,为了让其可行,我们应该引入"信息基质"的概念,并引入"集成基质" integration substrate 的概念。
17/。"集成基质"是一个适合集成其他基质、接口和交互的信息基质。这是一个多个不同接口可以共存和组合的共享媒介。我认为画布特别适合演变成这样。
- 集合:我们需要一种方式让画布中的对象成为通用集合的成员,以便与许多共存的系统进行可扩展的关联。这些不像我们现在的窗口系统那样被几何约束——一个系统可以与任意数量的形状绑定。
- 区域:我们需要一种方式在欧几里德空间中定位这些集合,允许组成"环境",这些"环境"占用空间,并有关于包含和事件/状态变化(如对象进入或离开一个区域)的语义。
- 字段:画布的空间不需要是中立的,一个属于集合/区域的对象可以与其他对象有交互规则,还有方法使这些在空间中易于解读。(这一点可能最后会变得多余)
- 最后,集成语义,给我们提供了将这些事物联系在一起的方法。Stephen Kell强烈主张,集成语言的表达能力应该低于我们的通用完全图灵语言。 "关系,而不是脚本或电路"
18 / 为接口设置一个集成领域,可以打开新的软件拓扑结构,从根本上改变我们的计算体验。
19/ 开发一个用于人机交互的集成领域,可以使新的软件拓扑结构更易变、灵活、多元化和有趣。我认为空间画布特别适合作为这一集成的基础。
推荐:
