你们中有多少人用过 比如Microsoft Excel 这样的电子表格呢? 非常好。 那么,你们中又有多少人曾 用手写电子表格经营过小企业, 就像我爸爸在费城开设 小型印刷业务那样呢? 少了很多。 不过几百年来各种表格都是用手写的。 早在1978年, 我就开始设想一个点子, 它最终变成了VisiCalc (第一款电子表格办公软件)。 第二年,它就开始在一个 叫做 Apple II 的个人 笔记本电脑新产品上运行了。 这项发明为世界带来了 巨大的改变,就在六年之后, 华尔街日报刊登了一篇报道, 说你一定知道VisiCalc是什么, 你也许正在使用它。 1990年,史蒂夫・乔布斯 曾说:“电子表格推动了产业发展。” “VisiCalc推动了苹果的成功, 它的作用胜过了任何其它单一事件。” 在一个更加私人的评论当中, 史蒂夫说:“如果VisiCalc 是写给其他电脑公司的, 你们现在就该在采访其他人了吧。” 所以,把私人电脑搬上商业舞台, VisiCalc发挥了大作用。 这一切是怎么发生的? 它是什么?我是如何将它变成这样的? 我第一次学会编程 是在1966年,那是我只有15岁—— 大概是在拍了这张照片几个月之后。 在那个年代,很少有 高中生就能接触到电脑的。 但是有了运气,加上 无数坚持不懈的努力, 我终于得到了在城市里 使用电脑的机会。 在伍德斯托克的乡野中过了一阵子之后, 我去了麻省理工(MIT)上大学。 为了赚钱,我参与了Multics项目。 Multics是一个开创性的 交互式分时系统。 你们听说过Linux 和Unix操作系统吗? 他们的前身就是Multics。 我在Multics主要致力于研究 那些被非计算机领域的, 但是却要坐在电脑终端前 进行计算的人们所使用的 所谓的解释型计算机语言。 从MIT毕业之后, 我去了数字设备公司(DEC)工作。 在DEC,我主攻一个用于 计算机新领域, 文稿排版的软件。 我帮助那些报社用电脑终端 代替记者们常用的打字机。 我编写软件, 并实地考察,去像 《堪萨斯城明星报》这样的地方, 这那里,我训练那些用户, 并得到反馈。 这些实战经历 与我在MIT实验室里 所体验到的大相径庭。 在那之后,我就成为了 DEC第一个文字处理器软件的 项目主管,又是一个新领域。 和文稿排版软件一样, 最重要的是做出一个 对于非计算机领域人士 既自然,又高效的用户页面。 在DEC之后, 我又去了一家小公司工作, 他们做的是快餐领域中 基于微处理器的电子收银机。 但是我一直以来都想和我在MIT, Multics项目中认识的好友 鲍勃·弗兰克斯顿一起开一家公司。 所以,我决定回到学校, 尽我所能的学习一下商业经营。 之后,在1977年的秋天, 我加入了哈佛商学院的MBA项目。 我就是那一小部分 有计算机编程背景的学生之一。 这是年鉴中我的照片, 我坐在前排。 (笑声) 在哈佛,我们是以 案例分析的方式学习的。 我们每天大约做三个案例分析。 每个案例都是由好几十页纸组成的, 描述了某个具体的企业经营情况。 它们通常会有演释,这些演释中 经常会有一些字母和数字, 而它们的排列只在 特定的情况下才有意义。 它们通常都是完全不同的。 这是我的作业。 又是数字,字母, 以一种有意义的方式排列。 计算量非常大—— 我们的效率都快接近计算器了。 事实上,这是我当时用的计算器。 在万圣节,我还穿成了计算器的模样。 (笑声) 在每节课的开始,教授都会叫一个人 去汇报案例。 他们通常会介绍一下案例, 然后口述一下信息, 教授就会把信息转录到 教室最前方的电动黑板上, 然后我们会就此展开讨论。 最令人沮丧的事情之一 就是当你做完了所有的作业, 然而第二天早上一来, 发现出了一个小错误, 然后其它的数据就跟着都算错了。 这样你就没法参与课堂讨论了。 可是我们是根据课堂参与度打分的。 所以,跟着其它87个人同坐在 一个教室里,我经常开小差。 那个年代,大多数的程序员 都是主攻中央处理器的, 建造一些像是库存系统,工资系统 或是账单处理系统之类的。 但是我曾在互动语言处理 和按需个人计算领域工作过。 我没有考虑打印纸或是穿孔纸, 而是想象出了一个神奇的黑板, 只要擦掉一个数字, 然后再写一个新的进去, 所有其它的数据都会跟着自动改变, 就像是数字领域的文字处理过程。 我想象我的计算器 能在底部有鼠标和硬件, 上方还有个显示屏, 就像是一架战斗机。 这样,我就可以输一些数字进去, 然后圈中它,按下求和键。 这样,在谈判桌上 我们就能够得到结果了。 现在,我只需要 把我的理想变为现实了。 我父亲教会了我如何设计原型。 他给我展示了那种为了找到 小册子上正确印刷位置 而制作的模型。 他使用这些模型 去收集来自用户的反馈, 当得到好的回复时, 他就把他的作品送到印刷厂。 试图去建立一种简单的, 可用的版本的行为 迫使你去揭露那些关键问题。 而且这也使你能够 更加低成本的解决那些问题。 所以我决定去建造一台原型机。 我前往了一个连接在 哈佛分时系统里的视频终端 并开始了工作。 我遇到的最基本的一个问题就是: 如何表达算式中的数值呢? 我来解释一下。 我想象你会指向某个方向, 输入某个单词, 然后在另一个位置, 放进一些数字,更多的数字, 指一下你想要得到结果的地方。 指向第一个数字,放上减号, 再指向第二个数字, 然后得到结果。 问题在于: 我应该把什么放进公式里呢? 这就需要电脑去知道 该把什么东西放进去 而当你看见公式的时候, 你就需要知道在屏幕上 它所代表的位置含义。 我最初想到的是以一种 程序员的方式去做这件事。 当第一次你指向一个位置的时候, 电脑会要求你输入一个特殊的名称。 而很快事情就变得清晰起来了, 这个过程太单调乏味了。 电脑要能够自动的编译名称 并把它放进所指定的位置。 所以我就想,为什么不让他们 以一种你们创造他们的顺序排列? 我尝试了。数值1,数值2。 然后,很快我就意识到了, 如果你的数字很多, 要想记住它们在屏幕上的 位置是根本不可能的。 然后我就说,为什么 不让你们随便把数值放在哪里, 然后我来用一个表格进行限制? 然后当你指向一个单元格, 电脑就会自动生成携带名字的行与列。 然后,如果我把它做的和地图一样, 在顶上横向生成ABC,侧面纵向生成数字, 那么当你在公式中看到B7时, 你就会准确的知道 它在屏幕中的位置了。 如果你必须要手动输入公式的时候, 你也会知道该怎么做。 把这些都限制在表格当中 解决了我的问题。 这也开启了一些新的功能, 比如设定单元格的操作范围。 但是它并非很死板—— 你仍旧可以把任何值, 任何公式放进任意的单元格当中。 这就是我们一直到今天 都在做的,将近40年之后。 我的朋友鲍勃和我决定 要一起制作这个产品。 我花了更多的时间去研究 这个程序究竟该如何运作。 我还写了一篇参考文档,用作记录。 这也帮助了我确保 我所定义的用户界面 可以向普通人简洁,清晰地阐述。 鲍勃是在马萨诸塞州阿灵顿市 租的公寓小阁楼上工作的。 这就是小阁楼的内部。 鲍勃购买了MIT,Multics的分时系统, 用于在像这样的终端上书写代码。 然后他就会使用声音耦合器,通过电话线 将测试版本下载到借来的Apple II电脑上, 然后我们就会测试它。 我准备的测试之一就是百事挑战。 那时还没法打印,所以 我只能将所有东西抄录下来。 当时也没有保存功能, 所以每次程序崩溃时, 我都必须将所有的公式 都一遍又一遍地重输进去。 第二天在课堂上,我举起了我的手; 我被叫到了台上展示案例。 我做了一个五年的预测。 我做了各种各样的情景预期。 我成功的做出了这个案例, VisCalc已经很有用了。 教授就问,“你是怎么做出来的?” 不过,我不想告诉他我们的秘密项目。 (笑声) 所以我就说,“我选取这个,加上这个, 然后乘以这个,然后再减去那个。” 他说,“好吧,你为什么不用比率呢?” 我说,“哈!因为用比率 就没有那么准确了!” 但我没有说的是:“除法暂时还不好用。” (笑声) 最后,总而言之,我们确实 把VisCalc做的足够完整了, 可以把它向大众展示了。 我父亲就把参考文档的 小样打印了出来。 我们就把它当作我们的宣传材料。 在1979年的六月,我们的出版商 在纽约大型计算机会议上的 一个小摊位上, 把VisCalc介绍给了全世界。 纽约时代周刊为 这次的会议写了一篇趣评。 “机器正在表演看似宗教仪式的东西…… 信徒们不断聚集而来, 画家们不断聚集到大型场所,加入圣殿, 仔细地在巨大的黄板上写下 巨大黑色的‘VISCALC’字样。 所有人都在为VISCALC喝彩!” 那可是纽约时报啊: “所有人都在喝彩,VISCALC!” (笑声) 这也是最后一次一个电子表格 能在流行商业新闻中红两年。 大多数人还不是很理解。 但是有些人理解了。 在1979年10月,我们发售了VisCalc。 它的包装刚到的时候是这样的。 当它在Apple II上运行的时候是这样的。 剩下的,按照他们的说法,就是历史了。 现在,这个故事还有好大一截子呢, 但是我只能留到过两天再说了。 尽管如此,但是有一点, 哈佛还记得这事。 这就是当时的教室。 他们居然竖了块儿牌子 来纪念当时这儿发生的事。 (掌声) 但这也是一个提醒, 那就是,你们一样,也能够 运用你们的特殊背景,技能和需求 去设计原型,并发现, 解决那些关键问题, 然后通过这一切,改变这个世界。 谢谢。 (掌声)