二十六、图形用户界面

本文讲述了图形用户界面(GUI)的历史,从1984年Macintosh的革命性引入,到道格拉斯·恩格尔巴特的oN-Line System,再到Xerox PARC的Xerox Star和苹果的Macintosh。GUI的发展包括了窗口、图标、菜单和指针(WIMP)的概念,以及事件驱动编程的出现。微软的Windows逐渐占据市场,最终形成了现代计算机界面的基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1984年苹果发布的Macintosh是普通人可以买到的第一台带图形用户界面的计算机。在那个命令行计算机为主的时代里,这是一个革命性的产品。图形用户界面是一个“选择并点击”(point & click)的界面,计算机更直观了。
早期的交互式图形程序,如Sketchpad和太空战争都是1962年制作的。但这些都是一次性项目,不是整合良好的体验。现代图形界面的先驱可以说是道格拉斯·恩格尔巴特,他阅读了万尼瓦尔·布什的Memex文章并获得了启发。在1962年的一份开创性报告中汇集了各种想法,他认为人类面临的问题比比解决问题的能力增长得更快,因此找到增强智力的方法似乎是必要且值得一做的目标。他构想计算机不仅做自动化工作,也可以成为未来知识型员工应对复杂问题的工具。伊凡·苏泽兰的几何画板进一步启发了恩格尔·巴特。他决定动手将愿景变为现实,开始招募团队来做oN-Line System。他意识到如果只有键盘,对他想搭建的程序来说是不够的。他说:“我们设想:人们使用计算机辅助工作站来强化他们的努力。用户需要和屏幕上的信息互动,用某种设备在屏幕上移动(光标)”。1964年,和同时比尔·英格里希的共同努力下,他创造了第一个计算机鼠标,尾部有一根线。1968年,恩格尔巴特在“秋季计算机联合会议”展示了他的系统,展现了现代计算机的许多功能:位图图像、视频会议、文字处理、实时协作编辑文件;还有许多现代图形界面的原型:鼠标和多窗口。尽管它最终在商业上失败了,但是它对当时的计算机研究者影响巨大。恩格尔巴特因此获得1997年图灵奖。
政府自己在1970年代初开始减少。恩格尔巴特团队里的许多人,包括比尔·英格利,去了施乐公司(Xerox)新成立的“帕洛阿尔托研究中心”(Xerox PARC)。他们在这里开发了第一台带真正GUI的计算机,Xerox,于1973年完成。为了让计算机易于使用,需要的不只是花哨的图形,还要借助一些人们已经熟悉的概念,让人们不用培训就能很快明白如何使用。Xerox的方案是将2D屏幕当做“桌面”,就像桌面上放很多文件一样,用户可以打开多个程序,每个程序都在一个框里,叫“窗口”。就像桌上的文件一样,窗口可以重叠,挡住后面的东西。以及桌面配件,比如计算器和时钟。用户可以把配件在屏幕上四处移动,。它不是现实桌面的完美复制,而是用桌面这种隐喻,因此叫“桌面隐喻”。有很多方法来设计界面,但Alto团队用窗口、图标、菜单和指针来做,因此叫WIMP界面,如今大部分图形界面都用这个。它还提供了一套基本部件,可复用的基本元素,比如按钮、打钩框、滑动条和标签页。这些从现实世界中采用的组件也让人有熟悉感。
GUI程序就是这些小组件组成的,让我们试着写一个简单例子。首先我们必须告诉操作系统为程序创建一个窗口。我们通过GUI,API实现需要指定窗口的名字和大小——假设500*500像素。现在再加一些小组件,一个文本框和一个按钮。创建他们需要一些参数,首先要指定出现在哪个窗口,因为程序可以有多个窗口。还要指定默认文字,窗口中的X,Y位置以及宽度和高度。好,现在我们有个看起来像GUI程序的东西,但是他还没有功能。如果点击roll按钮,不会有任何情况发生。以上功能通过函数initialize实现
在这里插入图片描述

在之前的例子中,代码是从上到下执行的。但是GUI是“事件驱动编程”(event-driven programming),代码可以在任意时间执行以响应事件。这里是用户触发事件,比如点击按钮,选一个菜单项,或滚动窗口。假设当用户点Roll按钮,我们产生1到20之间的随机数,然后在文本框中显示这个数字。我们可以写一个函数rollD20来实现这个功能。我们还可以设置一些小功能。最后我们还需要将代码与“事件”相连,每次点按钮时都可以触发代码。因此我们要设置事件触发时由哪个函数(handle)来处理。我们在initialize函数中加一个addClickHandler来处理点击rollButton事件。这就好比在编辑器里点击“粗体”或者在菜单里选“关机”,一个处理该事件的函数会触发。
在这里插入图片描述

回到Xerox。2000多台Xerox被制造并在Xerox公司或者大学实验室内部使用,它并没有被商业出售过。然而,PARC团队不断完善硬件和软件,并与1981年发布了Xerox Star系统。Xerox Star扩展了“桌面隐喻”,文件看起来就像一张纸,还可以存在文件夹里。文件夹可以放在桌面上或者数字文件柜里——这些部件用来隐喻底层的文件系统。
在这里插入图片描述

Xerox卖的是印刷机,但在文本和图形制作工具领域也有领先。他们首先使用了剪切、复制、粘贴这样的术语。类似的文字处理软件在AppleII和Commodore PET上面也有,但是Xerox在这一点上走的更远,无论你在计算机上怎样,文件打印出来应该和计算机上的编辑内容一样,这就叫做“所见即所得(what-you-see-is-what-you-get,WYSIWYG)”。不幸的是,就像恩格尔巴特的oN-Line System,Xerox的销售量也不高,因为成本过于昂贵。IBM于同年推出了IBM PC。之后廉价的“IBM兼容”计算机席卷市场。但PARC研究人员花了十几年做的这些没有被浪费,1979年12月,Xerox出货前一年半,乔布斯前往Xerox公司参观。很多人认为乔布斯和苹果偷走了Xerox的创意,但是那并不是事实。实际上是Xerox主动找到苹果并希望合作。Xerox最终还购买了苹果的一百万美元股份——这发生在苹果备受瞩目的首次公开募股(IPO)之前,所以苹果也要求了一个额外条款:“公布Xerox PARC的研究工作”。其中的一个演示是:一个清晰的位图显示器上,运行着Xerox公司的图形界面,操作全靠鼠标直观进行。乔布斯和随行的工程师回到苹果公司并开始开发新功能,比如菜单栏、垃圾桶等。苹果第一款有图形界面和鼠标的产品是1983年发行的Apple Lisa,但也同样因为价格昂贵而在市场上失败。是,苹果还有另一个项目:Macintosh,于1984年发布。由于价格相对于Apple Lisa便宜不少,它获得了成功。但是之后销售额变动,Apple II的销售还是比Mac多。一个大问题是:没人给这台Macintosh做软件。之后情况变得更糟,竞争对手赶上来了。其它价格只有Mac几分之一的个人计算机也有了原始但可用的图形界面。随着苹果的财务状况日益严峻,以及和苹果新CEO约翰·斯卡利的关系日益紧张,乔布斯被赶出了苹果公司。
几个月后,微软发布了Windows 1.0。它也许不如Mac OS漂亮,但让微软在市场中站稳了脚跟、奠定了统治地位。十年内,95%的个人计算机上都有微软的Windows。最初,Mac OS的爱好者还可以说Mac有卓越的图形界面和易用性,Windows早期版本都是基于DOS,而DOS设计时没想过运行图形界面。但Window3.1之后,微软开始开发新的、面向消费者的GUI操作系统,叫做Windows 95。这是一个意义非凡的版本,它不仅提供精美的界面,还有Mac OS没有的高级功能,比如“多任务”和“受保护内存”。Windows 95引入了许多,如今依然见得到的GUI元素。比如开始菜单、任务栏和Windows文件管理器。不过微软也失败过。为了让桌面更简单友好,微软开发了一个产品叫MicrosoftBob,将比喻用到极致,把整个屏幕变成一整个虚拟房间。程序是物品,可以放在桌子和书架上,甚至还有壁炉和提供帮助的小狗。房子上的门通往不同房间,房间里有不同程序。
在这里插入图片描述

当前我们看到的诸如Win10的图形用户界面是自然选择(natural selection)之后的结果。无论你用的是Windows、Mac、Linux或其他GUI,几乎都是Xerox Alto上的WIMP界面的变化版。工程师和计算机科学家们通过不断努力、改进、测试,得到尽可能好的用户界面供客户选择。朝着恩格尔巴特“增强人类智能“的愿景而努力。
以下是本节课的总结:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值