Blog
Essay
当系统开始解释·Chapter 2 of 18

从命令到界面

从批处理、分时系统、命令行、图形界面、Web 到移动设备,追踪人与计算机如何从提交任务走向连续操作。

interactionHCIinterfacecomputing-history

今天,我们很难察觉“等待计算机”曾经是一件多么具体的事。

点击保存,图标立即变化;拖动地图,新的区域跟着手指进入屏幕;输错密码,表单当场指出问题。行动与结果挨得很近,于是我们把这种往返当作计算机理所当然的样子。

但计算机并非一开始就在人的动作旁边等待。它先是一台接受作业的机器,后来才成为一件能够被持续操作的东西。“交互式计算”的历史,也就是人和计算机之间的时间、语言与距离不断被重新安排的历史。

在交互以前:把任务交给机器

早期大型计算机昂贵、稀少,首先要解决的是如何充分利用机器,而不是如何让某个使用者获得顺畅体验。程序和数据被准备成一批作业,交给操作人员,再由计算机依次处理。提交者离开,稍后回来领取打印结果。

Computer History Museum 把批处理比作洗衣机:放入一项工作,等它结束后再回来。这个比喻抓住的不只是等待时间,也抓住了人与计算过程的分离。程序运行时,提交者通常不能停下来观察某一步、修改一个参数,然后从那里继续。

在这种关系里,反馈当然存在——错误清单、打印结果、机器是否成功完成作业,都是反馈。但反馈来得太晚,难以进入人的即时判断。一次很小的拼写错误,也可能要经过“提交—等待—失败—修改—重新提交”的完整循环。

这时的计算机更像一个部门,而不是一个界面。人并不直接面对计算过程,而是通过卡片、纸带、操作员和排队规则与它发生关系。

分时系统:机器开始及时回答

20 世纪 50 年代末到 60 年代,分时系统让多名使用者通过终端共享一台计算机。机器在不同任务之间迅速切换,使每个人都仿佛独占了它的注意力。Computer History Museum 对 PDP-1 分时系统的介绍指出,分时正是为了回应大型机成本和批处理不便而发展起来的。

变化的关键不只在资源分配,而在时间尺度。人输入一行,机器很快返回一行;人看见结果,再决定下一步。计算终于可以进入连续的行动循环:

输入 → 计算 → 返回 → 判断 → 再输入

这种快速往返使终端呈现出一种“对话感”。APL/360 甚至被称作 conversational language:每个用户拥有保持程序、变量和执行状态的工作空间,可以输入表达式并立即看到结果。计算机不再只接收一份完整作业,而开始陪伴任务逐步展开。

不过,这种对话使用的是形式化语言。用户需要知道命令叫什么、参数放在哪里、哪些符号具有特殊含义。机器及时回答了,却仍然要求人进入机器规定的语法。

因此,命令行已经是强有力的交互界面。它并不是 GUI 出现以前的“不完整界面”。它可以组合、自动化和精确表达复杂操作,熟练使用者甚至能以很短的命令完成大量工作。但它主要依赖回忆:人在输入之前,需要先知道某个动作如何被说成机器接受的形式。

命令行确立了一种持续至今的基本关系:

系统提供一组预先定义的能力,人通过正确的表达调用它们。

从说出命令到触碰对象

与此同时,另一条路径在屏幕上出现。

1963 年,Ivan Sutherland 在 Sketchpad 中让人使用光笔直接绘制、选择和修改图形。图形不再只是计算结束后的输出,而成为可以继续操作的对象。画一条线,线立即出现;改变几何约束,相关形状随之更新。人的行动、系统状态和视觉反馈被放进同一个空间。

1968 年,Douglas Engelbart 的团队演示 NLS:鼠标、窗口、超文本、文本编辑和远程协作共同出现。重要的不是后来哪些产品继承了这些部件,而是计算机被重新想象为扩展人的思考与协作的环境。人不是偶尔来领取结果,而是在系统中持续组织材料、修改表达、与他人共同工作。

到 1970 年代的 Xerox Alto 与 1981 年推出的 Xerox Star,屏幕进一步变成一个由对象构成的工作世界。文档、文件夹、收件箱和打印机以图标出现,窗口显示对象内容。Star 的设计者明确希望把计算机带进用户熟悉的办公世界,而不是要求用户进入计算机内部。

这带来了两个相反方向的运动:

  • 计算机内部的数据结构被表现为人熟悉的对象。
  • 人的身体动作被翻译为选择、移动、打开、复制和删除。

1983 年,Ben Shneiderman 用“直接操纵”概括这一类系统。他强调持续可见的对象、快速而渐进的操作,以及容易撤销的结果。键入一个表示“移动”的命令,被移动鼠标拖动物体取代。用户不必先描述动作,再等待系统转译;动作与对象看起来直接接上了。

“直接”当然是一种精心制造的感觉。屏幕中的文件夹不是真实文件夹,拖拽也仍要经过输入设备、事件系统、程序逻辑和存储结构。但良好的界面隐藏了这条技术链,让人的注意力留在任务对象上。

界面成为一份可见的契约

图形界面并没有取消命令,而是把一部分命令变成了可见选择。

菜单告诉人这里有哪些动作;图标暗示有哪些对象;禁用状态说明什么暂时不能发生;指针、按压和拖拽规定动作如何施加到对象上;动画与提示则说明系统如何回应。

界面因此像一份可见的契约:

看见什么
→ 可以对它做什么
→ 做完后会发生什么

相比命令行,它把负担从“记住正确表达”转移到“识别可见选择”。但可见也意味着边界。没有出现在菜单、工具栏和对象状态里的能力,通常很难被调用;没有被设计成控件的参数,也很难在当下调整。

1984 年的 Macintosh 把窗口、图标、菜单和鼠标带给了更广泛的个人计算机使用者。Computer History Museum 对它的概括很准确:人可以通过屏幕上的图像控制计算机,不再主要依靠记忆命令。交互的重心由“告诉机器做什么”逐渐转向“在可见环境中操作对象”。

Web:操作不再停留在一台机器里

图形界面主要把计算机内部对象组织成一个可操作空间。Web 则把这个空间打开,指向别的文档、别的服务器和别的人。

Tim Berners-Lee 在 1989 年提出 Web,并在 1990 年完成第一台服务器以及兼具浏览和编辑能力的客户端。超链接的特殊之处,是它把导航动作嵌进内容本身:选择一段有意义的文字,就能跨过机器和组织边界,抵达另一个资源。Berners-Lee 后来回顾,Web 的梦想是一个通过共享信息进行交流的共同空间。

随着页面、链接、表单、搜索框、账户和动态脚本发展,界面不再只代表本机文件与程序,也开始中介:

  • 人与远程信息的关系;
  • 人与服务提供者的关系;
  • 人与其他人的交流;
  • 群体与平台规则的关系。

“互联网时代的交互”因此不是某一种新控件,而是交互对象发生了扩张。点击一个按钮,可能是在本地改变显示,也可能是在远端创建订单、向另一个人发送消息,或者改变平台对更多人的推荐。

但从人的操作来看,Web 延续了图形界面的基本逻辑。链接、表单和按钮仍然由设计者预先规定;一项服务能够做什么,通常通过页面结构展示出来。网络扩展了行动抵达的地方,却没有根本改变行动与功能的映射方式。

移动设备:界面回到身体与环境

个人计算把屏幕放到桌面,Web 把屏幕接入网络,移动设备则让屏幕跟随身体进入日常环境。

2007 年发布的 iPhone 并不是第一台触屏设备,却鲜明地展示了多点触控如何重新安排直接操纵:手指同时成为指针和动作,轻点、滑动、捏合与旋转直接施加在内容上。设备中的加速度、距离和环境光传感器,还使系统能够根据姿态与周围条件改变行为。

交互开始获得更多上下文。同一个动作发生在走路、驾驶、会议或卧室里,意义与风险并不相同;定位、通知、相机和传感器让系统可以在用户尚未明确操作时就改变状态。Mark Weiser 在 1991 年描述的普适计算愿景——计算机进入人的世界并退到注意力边缘——逐渐有了日常形态。

即便如此,大多数移动应用仍由预设界面组织。人滑动信息流、选择联系人、填写地址、确认付款。动作变得更贴近身体,系统也更了解环境,但应用的对象、状态和合法操作仍主要由设计者事先枚举。

“界面时代”究竟共享了什么

从命令行到触摸屏,很难用一个词概括几十年的计算。它们不是整齐替换的世代:今天仍有人使用批处理和命令行,图形界面里也藏着语言、推荐与自动化;早在 1966 年,ELIZA 就已经让人通过自然语言与程序对话。

所以,“从命令到界面”不是一条技术从低级走向高级的直线。它描述的是主流人机关系逐渐形成的一组共同假设:

  1. 能力大体预先确定。 系统能够执行的功能由程序和产品边界规定。
  2. 动作具有约定映射。 命令、菜单、点击与手势对应某些已定义操作。
  3. 界面呈现可能性。 人通过语法、控件和对象状态了解自己能做什么。
  4. 反馈确认执行结果。 系统告诉人操作是否发生以及当前处于什么状态。
  5. 错误多被理解为操作问题。 命令写错、对象选错、状态不允许,通常能定位到某个步骤。

这个范式取得了巨大成功。它让系统行为相对可预测,也让设计者能够通过一致性、可见性、映射、约束和反馈改善使用体验。

但它也把一个问题暂时藏了起来:如果人不再选择已经定义好的动作,而是说出一段尚未形式化的意图,系统应该调用什么功能?

这时,系统面对的就不只是操作,还包括对表达的解释。

参考材料