原文

原文: What is Alan Kay’s alternative solution for the web which he mentioned in OOPSLA ‘97?

译文

我不记得 26 年前说了什么…

我对 Web 人员和浏览器人员从未关注以前更好的前瞻性工作感到震惊,这可能会对事情的发展和现状产生重大影响。

三个重要的例子是:

  1. 恩格尔巴特的 NLS 系统(更重要的是:恩格尔巴特对协作和沟通的愿景)
  2. 苹果的 Hypercard 系统,它在 80 年代末期非常出色,并且更重要的是:展示了 Web 如何成熟以造福所有用户的路径
  3. Postscript 如何解决重要的系统问题。

相反,万维网(WWW)采用了简单的基于文本的标记文档,Web 浏览器甚至更糟,因为它们更注重消费而不是创作。

值得注意的是, 真正分享 的选项已经内置在 Engelbart 系统的操作系统中(今天,在他的演示的 55 年后,人们使用的标准操作系统都没有这个基本功能)。

Hypercard 展示了一个终端用户创作系统如何被数百万终端用户学习和使用,并提供了 Web 创作的模式。这最初被 Web 人员完全忽视,然后逐渐做得不好(回想一下 Java 的早期历史,以及为什么“Javascript”被称为“Javascript”)。

John Warnock 和 Chuck Geshke 最初在 Parc 工作,那里出现了一个有趣的问题(涉及位图显示上的编辑以及使用 Gary Starkweather 新的高分辨率位图激光打印机):

个人计算机应发送什么内容到激光打印机,以便打印任意图像?

第一个解决方案–由打印机解释的数据结构–在意识到几乎不可能处理所有可能的图像、更新打印机等问题时崩溃了。

然而,这引发了 发送一个过程(process) 到打印机上的编程语言的虚拟机的想法,旨在以无分辨率方式生成图像。该进程可以在地址空间中安全运行,并使用相当于访问外部引用的功能(如打印机的像素缓冲区等)。打印机解释器将了解打印机的特性、分辨率、介质等。这种解决方案将更好地匹配“谁需要知道什么”,并允许打印机被简单的虚拟机解释器“殖民”。这随后使 Adobe 能够快速将打印机与 Postscript 配对。

因此, 过程(process) 是一种同时包含代码和数据并且安全封装的对象。

请注意, 这表明–特别是在互联网中–处理 Web 及其用户界面的模型。即发送过程而不是文本, 并且让共同的基数从

  1. 处理虚拟机的操作系统开始,这些虚拟机可以安全地运行它们,以及
  2. 将虚拟机的输出映射到用户的屏幕(相当于打印机)。有一个很大的机会
  3. 将此视为帮助组织交互的 GUI 的方式,但也
  4. 允许进程做他们自己的用户界面(但它是一个好主意时)。

请注意,这也意味着外围设备(如打印机)包含了用于其驱动程序的高级语言代码(并且可以将其发送到个人计算机上的用户软件,而不是用大量驱动程序软件堵塞本地操作系统)。

以上段落是系统思维者会进行的思考方式…

那时我可能会做的另一个评论是,最初的愿景对于 Web 和浏览器人员来说是如此狭隘,以至于他们认为答案是“一个应用程序”,而不是一个真正能够处理互联网发展的操作系统环境(在 60 年代甚至还没有 ARPAnet 之前,恩格尔巴特就有了一个更好的愿景)。

我记得 Web 员最终透露他们并不知道恩格尔巴特之前的工作。

从“实际”角度来看,从一个薄弱的概念开始,然后逐步增加功能,很难避免最终出现杂乱无章和不必要的复杂性。这包括非常重要的考虑因素,如安全性和信任(它们很难添加到最初不安全和不可信的系统)。同样,设计不具备可扩展性的系统很难进行扩展。

等等…

这就是 Web 及其浏览器的成功如此令人震惊的原因。每当我浏览维基百科上关于动态内容(如编程语言、物理系统等)的文章时,我都会感到不寒而栗,因为解释中没有动态模型(而维基百科是在终端用户强大计算机上运行的!)。

Web 和浏览器的人员没有理解“计算机”的哪一部分呢?(请注意,最初的 Web 是在一台带有良好用户界面和操作系统的 Next 计算机上完成的,后来的浏览器最初也是在带有实际操作系统和图形用户界面的计算机上完成的……)。我猜想他们没有考虑未来(因为任何思考都会揭示出所需的实际上是比个人计算机已经具备的更多,而不是更少)。

今天同样令人震惊的是,我发现大多数自称懂电脑的人在被要求批评浏览器、标准操作系统等时都束手无策。他们已经习惯了“糟糕”,并认为这是“正常”和“可以接受”的。对我来说,这不仅令人悲伤,而且很危险。

参考