设计师唐纳德·诺曼(Donald Norman)正在将电脑中的文件备份到一台服务器上。他坐在旁边,观察着进度,想看看计算机一步步地都做了些什么。[12]一段时间后,他注意到备份进度已经来到了“样条网格化”(reticulating splines)阶段。这个专业术语看上去很高级,也显得很令人放心——计算机程序肯定真的知道它自己在做什么。但是诺曼没有感到放心,他想知道这到底是什么意思。经过一番研究后,他发现,正如《模拟城市2000》(SimCity 2000)游戏的拥趸们都知道的那样,这实际上只是一个“圈内笑话”。这款游戏被插入了一些无用的短语,只是看起来有意义罢了。自那以后,这种情况便陆续出现在了各种各样的游戏和其他软件中。
不妨回想一下,上次安装新软件的时候,你真的知道计算机内部发生了什么事情吗?你是否了解各种软件包被存储在硬盘驱动器上的哪些文件夹中?你知道软件安装程序根据计算机硬件和操作系统的不同性能,修改了计算机的哪些信息吗?
不太可能。你眼中只有一个长条状的东西,你只能通过观察它被逐渐填满的过程,来了解安装的进度。它就是进度条。这种小型的界面创新程序,出自计算机科学家布拉德·A.迈尔斯(Brad A. Myers)之手。在读研究生时,迈尔斯开发出了这个程序,并将其称为“进度完成指示器”。[13]进度条给不透明的过程提供了一个小窗口,并以此来抚慰用户。那么,进度条是不是完全准确的?很可能不是。在某些情况下,进度条几乎完全脱离了底层的运行过程。[14]但是在大多数情况下,进度条和其他讨巧的设计,例如描述软件安装过程中所发生之事的文本框一样,可以让人们对一个庞大且复杂的过程投去“放心的一瞥”。
我们在构建用户界面时会越来越多地有意地将复杂性抽象掉,或者,至少让部分复杂性与用户隔离。这种做法使复杂性科学和用户界面设计学这两个领域产生了交集。无论是在电脑中,还是在汽车中,抑或是在电器中,技术系统都会在用户与程序运行之间设置一道屏障。许多人都会选择使用用户界面相当友好的特波税务软件(TurboTax),而不会选择与越来越复杂的税法进行面对面的“博斗”。[15]然而,在这个软件的背后,其实隐藏着一整套非常复杂的法律法规体系,它们是通过大量if语句和处理例外情况的计算机代码来呈现的。
凭借直觉,我们能察觉到系统内部到底发生着什么,尽管这种直觉有时候不甚准确。因此,只要想办法保证这种直觉不消失,就可以消除用户因未知而产生的不安。
我家的第一台电脑是康懋达公司生产的VIC-20。在其代言人、《星际迷航》(Star Trek)的主演威廉·夏特纳(William Shatner)口中,它是“20世纪80年代的奇迹电脑”。我拥有许多有关这款古董级电脑的美好回忆。我曾经用它玩过不少游戏,当时所用的存储设备还是最原始的盒式磁带机。我和我的兄弟玩过很多次的一个游戏是《吃豆人》(Pac-Man),不过,在那款游戏中,“吃豆人”的形象不是一个长着大嘴的黄色馅饼,而是一辆赛车。
我们还玩了不少需要手动输入代码来运行的游戏。在那个年代,虽然你也可以购买现成的VIC-20游戏软件,比如赛车游戏,但是人们玩电脑游戏的主要方式是将杂志上发布的计算机代码输入到电脑里。你想玩一个有趣的滑雪游戏吗?买一本杂志,将上面的计算机代码输入到电脑中,然后自己来运行这个程序,并不需要购买游戏软件。当时,这样的游戏很常见。今非昔比,如今,几乎每个游戏程序都有几十万行代码,可能整本杂志都登不完。
自己输入代码,可以让我们更近距离地接触计算机。我看到了软件中的bug是如何产生的。记忆中,我输入的滑雪游戏的程序代码导致屏幕一侧出现了很多图形乱码,我费了很大心思才把这个错误纠正过来。我还看到了计算机程序的逻辑和内在结构。今天的计算机程序是以成品的形式交付给用户的,相比之下,往日的计算机程序则具有清晰的结构。
20世纪80年代末,我的家人放弃了那台康懋达公司生产的VIC-20,转而使用苹果公司的产品。自那以后,我一直在使用苹果电脑。我们家的第一台苹果电脑,在年幼的我们看来是一个令人难以置信的产品。无论是操作便利的鼠标,还是大量的游戏,都深深吸引着我。我记得其中有一款游戏叫《宇宙渗透》(Cosmic Osmo),它拥有内涵丰富的游戏场景,令人顿生身临其境之感,而且只需点击鼠标即可尽情探索。早期的苹果电脑也会“说话”,能将文本转换为单调的“非人类”语言,这让我们全家都感到无比兴奋。1984年,史蒂夫·乔布斯在苹果电脑新品发布会上的演讲感人至深,给我留下了难以磨灭的印象。然而,在拥抱苹果电脑这个奇迹的过程中,我和我的家人也失去了一些东西。我们离计算机越来越远了,而这种趋势在今天仍在继续:在用惯了顺手的iPad之后,我们甚至忘记了文件是怎样存储的。
不过,我还是给家里的苹果电脑安装了HyperCard。HyperCard是编程语言和开发环境的奇妙结合。你可以创建出虚拟卡,然后将它们拼接在一起,并添加表示特定功能的按钮和图标;你还可以制作出有趣的动画和酷炫的声效,然后把它们关联到其他卡上。或许你曾经玩过经典游戏《神秘岛》(Myst),它就是用HyperCard开发出来的。HyperCard就像一系列被保存在个人电脑上的原型网页,可以帮你做想做的任何事情。在当时,对于我这个刚开始探索计算机世界的孩子来说,这个可视化创作空间可谓是通向未来的完美窗口。
我用HyperCard创建了一个相当原始的密码生成器,它可以生成能用作密码的随机字符串,而且还带有一个可以让随机密码更易读写和长期记忆的选项。这个当然是比较简单的,但是在当时的我看来,它绝对领先于时代。
计算机游戏设计师哈伊姆·金戈尔德(Chaim Gingold)将HyperCard这类入门级软件工具称为“魔术蜡笔”。在童话《阿罗有支彩色铅笔》(Harold and the Purple Crayon)中,主人公哈罗德有支神奇的彩笔,用它画出什么,现实世界中就会出现什么。在金戈尔德看来,HyperCard就是这样的神奇工具,可以让“非程序员也能参与数字媒体的创作,并构建出动态的事物”。[16]人们普遍认为,苹果电脑已经“取消”了杂乱的代码,隐藏了计算机内部的运行状态,但即使真是如此,用户依然可以通过HyperCard造访复杂的数字领域。就我自己来说,HyperCard为我提供了一个可以窥探数字世界深处的舒适窗口,并为我提供了一些系统内部运行的线索。
能与我们产生交互的所有复杂系统都是有层级的。在技术系统中,我们通过深思熟虑的抽象化方法构建了这种分层结构;在自然界中,分层结构则建立在规模和进化的基础上。生物学中的层级从生化酶开始,到线粒体、细胞、器官,再到整个生命体,而后是整个生态系统。每个层级都可以提供不同层面的信息。当从一个层级的抽象化,向上扩展到另一个层级的抽象化时,我们或许会失去对细粒度(fine-grained)的理解和控制,但同时也能更好地理解更高级别的体系。在计算机软件中,我们的关注点可以从比特与字节转移到汇编语言,再到更高级别的计算机代码,最后到日常的用户界面,也就是我们点击、拖动的东西,例如对浏览器的使用。每一个更高的层级会都为我们带来更多的功能,但同时也会让我们更加远离底层逻辑。
当然,现在我们已经很清楚了,人类是不可能完全理解底层逻辑的。但是,我们至少应该窥探一下机罩底下的世界。如果将日常使用的平板电脑和手机视为会变魔术的玻璃和金属抛光板,完全不去理会面板下面或数字键下面到底发生了什么,那么我们肯定会失去一些机会。事实上,这确实是个隐患:如果所使用的系统是完全自动化的,[17]那么当它出现问题时,我们几乎无能为力。我们被屏蔽了,无法了解技术系统的内部运行,这种状态被称为“隐藏的电子复杂性”。换句话说,我们所用的设备存在着惊人的复杂性,但这种复杂性却被完全隐藏了起来。[18]
在20世纪60年代的电话通讯系统中存在着这样一个设计:当系统检测到故障时,就会将用户拨号关联到错误的号码上。[19]这个设计的目的是将技术系统故障定向为人为错误,以逃避人们对技术系统的苛责,用户会认为是自己拨错了号码。因为不了解内情,所以那些“拨错了号码的人”对电话通讯系统的权威性和神秘性有着自己的理解;一旦让他们知道了电话通讯系统是庞杂的、不完美的“人造物”,他们的理解就会变得不一样。
是的,我们必须打开机罩或通过窗口往里面瞥上一眼,看看那里发生了什么,尽管这种“管中窥豹”的做法通常无法做到“知全豹”。当技术的复杂性超出了人们的理解能力时,这样的“一瞥”,无论是对专家而言,还是对普通用户来说,都至关重要。仅仅让一个人,或一小部分人看到底层逻辑,并认识到系统和人类的局限性,是远远不够的。人人都应该关注,如何实现这“一瞥”。倘若做不到,我们在系统面前便会失去谦卑之心和敏锐直觉,从而转向崇敬或恐惧。关注技术底层,不仅有趣且有教育意义,而且还有助于抵制对待技术的“不正之风”。在当今这个纠缠时代中,我们越来越需要这种抵御能力了。
不过,如果很难瞥见机罩下的东西,我们又该怎么办呢?如果一个系统复杂到难以构建窗口,或是所提供的线索太少,我们又该如何是好?这里可以考虑另一种方法:构建模型。通过构建模型,我们可以推测出一个复杂的技术系统是如何运行的。
例如,虽然我们无法真的控制气象,也无法理解它所有的非线性细节,但却可以相当好地预测它、适应它,甚至为坏天气的到来做好准备。气象模型非常复杂,尽管它每个部分的设计都不是很难。我们不仅希望利用气象模型来指导日常活动,比如何时清理衣橱,何时出远门等,还希望对气象模型有所理解,哪怕是不完全的理解。当然,在面对突如其来的暴风雪或洪水时,我们还希望能靠它避险。
就像构建气象模型一样,我们也可以构建技术系统模型,哪怕有所简化也没关系。通过对感兴趣的系统进行模型构建,并测试其极限,调整其参数,我们便可以获得对复杂系统的强大洞察力,而用不着完全理解它。而且,构建模型本身也是一项值得培养的技能。
电脑游戏《模拟城市》就是这样的一个模型。[20]通过观察城市的运转模式,用户的洞察力得到了锻炼。在《模拟城市》出现之前,我一直不相信,没有城市规划或土木工程等专业背景的普通人,对城市的运转模式也能有清晰的理解。当然,我们无法扭转城市发展的进程,也无法进行反事实的实验。在《模拟城市》出现之后,我们或许仍然无法完全理解现实中城市的复杂性,但是一般来说,玩过这个游戏的人对城市的运转模式确实有了更深刻的理解。我们不仅需要更好的与技术世界有关的模型或游戏,还要教会学生如何“玩”一些系统,测试它们的极限,探析它们的工作原理,至少在某种程度上去探析。这种“玩”,其实是模拟技术故障,并观察系统反应,可以让我们更舒适地与庞大且笨拙的系统相处,并更好地理解这个日益复杂的技术世界。
我们还需要一些类似于电视上的气象学家的,能够对系统内部事态作出说明的解释者。经济学家泰勒·考恩在其《平均时代的终结》一书的结尾部分曾预言,这种解释者即将登场。[21]在他看来,他们将会“磨炼自己寻找、吸收和评估这方面信息的技能……他们将会成为机器网络世界的真相阐释者……至少,在未来相当长的一段时期内,只有他们能够清楚地认识到这个世界所发生的事情”。这些解释者对模型构建的评价可能会相当高,因为那可以给我们带来一些关于复杂系统的灵感。[22]随着时间的推移,技术将变得越来越难以渗透,为此,中学和大学教育需要更多地引入模型构建和简化直觉,并把它们结合起来,作为必要的复杂性科学方法传授给学生,让每个人都有机会成为系统的解释者。
简化直觉是由复杂性科学家发展起来的一般模型,它为启发式方法奠定了基础。启发式方法可以使我们得以理解系统,同时又不会被其复杂性压倒,并能与“包容性的将就”相结合,这也是约翰·盖尔的“一般系统滑稽论”所采用的视角。这些用来窥探大规模复杂系统的小窗口,体现了我们对待技术的谦卑之心。
另外,在面对复杂的技术系统时,我们还可以采用另一种更加积极的思维方式。