第一个预示着家用计算机将与它的孪生兄弟体积庞大、价格昂贵的大型机划分界限的标志性的事件是VisiCalc的使用。VisiCalc由丹·布莱克林(Dan Bricklin,生于1951年)和鲍勃·弗兰克斯顿(BobFrankston,生于1949年)设计并编程实现,而这套系统于1979年引入苹果Ⅱ型电脑(AppleⅡ)中。VisiCalc通过屏幕将一个二维电子数据表呈现给用户。在VisiCalc出现之前,数据表就是一张划分好了行、列的纸,主要用于一系列计算。VisiCalc用视频显示器将纸质材料取而代之,通过这种方式,用户可以在数据表中随处游走,在相应位置输入数据、公式,并在修改后对结果进行重新计算,为用户提供了更多的自由。
令我们惊讶与无奈的是,VisiCalc这款应用程序无法在大型机上运行。因为像VisiCalc这类程序需要以较快的速度不断更新屏幕,所以,它们直接将数据写入AppleⅡ视频显示器所配备的RAM中。该RAM是微处理器地址空间的一部分。大型时分计算机以及哑终端之间的接口速度过慢,以至于电子报表程序无法使用。
计算机对键盘的响应速度越快,对视频显示器的更新速度越快,则人机交互就越频繁。在IBMPC刚刚推出的10年里(即20世纪80年代),几乎搭配的所有软件都是直接将输出的数据写入视频显示存储器的。当时IBM建立了一套硬件标准,其他硬件制造商参照这些标准去生产,这样软件制造商就可以绕过操作系统直接操控硬件,统一化的硬件标准确保了程序的正确运行(同时也杜绝了不能运行的情况)。如果所有同构的PC都拥有异构的视频显示器硬件接口,这种做法无异于将软件厂商推到了火坑里,因为做软件的同时还要关注硬件设计细节是不现实的。
IBM早期PC配备的应用程序通常只有字符输出,很少有图形输出。使用文本输出大大加快了应用程序的运行速度。假设PC上配备一台第21章所描述的视频显示器,那么程序所要做的就是把字符相应的ASCⅡ码写入内存,然后屏幕上就会显示出该字符。但是如果使用的是图形视频显示设备,那么相应的程序需要将8个或更多的字节写入到内存中,这样做的目的就是画出字符的外观并以图形的方式显示。
在计算机的发展史上,从字符显示到图形显示是一次伟大的变革,计算机在这次变革中迈出了重要的一步。然而,相对于显示文本和数字所采用的软硬件,图形化计算机的软硬件发展十分缓慢。早在1945年,约翰·冯·诺伊曼(John vonNeumann)就预见了一种类似示波器的显示器,它的最大特点是可以显示图像化信息。但直到20世纪50年代早期,MIT(当时得到了IBM资助)建立了林肯实验室,实验室的主要任务就是帮助美国空军开发一种适用于防空系统的计算机,这次项目使计算机的图形化成为现实。该项目被称为半自动地面防空系统,简称 SAGE(Semi-Automatic Ground Environment),项目的内容包括构建一个显示图形的屏幕,以此来帮助操作员分析海量数据。
25 图形化革命
401