1 00:00:00,541 --> 00:00:03,979 你们中有多少人用过 比如Microsoft Excel 2 00:00:03,979 --> 00:00:05,729 这样的电子表格呢? 3 00:00:06,269 --> 00:00:07,126 非常好。 4 00:00:07,126 --> 00:00:12,156 那么,你们中又有多少人曾 用手写电子表格经营过小企业, 5 00:00:12,156 --> 00:00:15,590 就像我爸爸在费城开设 小型印刷业务那样呢? 6 00:00:15,960 --> 00:00:17,120 少了很多。 7 00:00:18,040 --> 00:00:20,640 不过几百年来各种表格都是用手写的。 8 00:00:21,480 --> 00:00:24,536 早在1978年, 我就开始设想一个点子, 9 00:00:24,536 --> 00:00:27,510 它最终变成了VisiCalc (第一款电子表格办公软件)。 10 00:00:27,510 --> 00:00:29,166 第二年,它就开始在一个 11 00:00:29,166 --> 00:00:32,629 叫做 Apple II 的个人 笔记本电脑新产品上运行了。 12 00:00:33,240 --> 00:00:37,346 这项发明为世界带来了 巨大的改变,就在六年之后, 13 00:00:37,346 --> 00:00:39,500 华尔街日报刊登了一篇报道, 14 00:00:39,500 --> 00:00:42,920 说你一定知道VisiCalc是什么, 你也许正在使用它。 15 00:00:43,760 --> 00:00:46,720 1990年,史蒂夫・乔布斯 16 00:00:47,160 --> 00:00:50,400 曾说:“电子表格推动了产业发展。” 17 00:00:50,880 --> 00:00:54,800 “VisiCalc推动了苹果的成功, 它的作用胜过了任何其它单一事件。” 18 00:00:55,440 --> 00:00:57,620 在一个更加私人的评论当中, 19 00:00:57,620 --> 00:01:00,246 史蒂夫说:“如果VisiCalc 是写给其他电脑公司的, 20 00:01:00,246 --> 00:01:02,960 你们现在就该在采访其他人了吧。” 21 00:01:03,360 --> 00:01:09,720 所以,把私人电脑搬上商业舞台, VisiCalc发挥了大作用。 22 00:01:09,720 --> 00:01:10,920 这一切是怎么发生的? 23 00:01:11,680 --> 00:01:14,600 它是什么?我是如何将它变成这样的? 24 00:01:15,920 --> 00:01:21,200 我第一次学会编程 是在1966年,那是我只有15岁—— 25 00:01:21,200 --> 00:01:23,520 大概是在拍了这张照片几个月之后。 26 00:01:24,200 --> 00:01:27,160 在那个年代,很少有 高中生就能接触到电脑的。 27 00:01:27,560 --> 00:01:31,096 但是有了运气,加上 无数坚持不懈的努力, 28 00:01:31,096 --> 00:01:33,320 我终于得到了在城市里 使用电脑的机会。 29 00:01:34,200 --> 00:01:39,080 在伍德斯托克的乡野中过了一阵子之后, 我去了麻省理工(MIT)上大学。 30 00:01:39,520 --> 00:01:42,600 为了赚钱,我参与了Multics项目。 31 00:01:43,320 --> 00:01:48,336 Multics是一个开创性的 交互式分时系统。 32 00:01:48,340 --> 00:01:51,550 你们听说过Linux 和Unix操作系统吗? 33 00:01:51,550 --> 00:01:52,800 他们的前身就是Multics。 34 00:01:53,320 --> 00:01:55,646 我在Multics主要致力于研究 35 00:01:55,646 --> 00:01:59,436 那些被非计算机领域的, 36 00:01:59,436 --> 00:02:01,966 但是却要坐在电脑终端前 进行计算的人们所使用的 37 00:02:01,966 --> 00:02:04,960 所谓的解释型计算机语言。 38 00:02:05,560 --> 00:02:07,866 从MIT毕业之后, 39 00:02:07,866 --> 00:02:10,680 我去了数字设备公司(DEC)工作。 40 00:02:11,320 --> 00:02:14,296 在DEC,我主攻一个用于 41 00:02:14,296 --> 00:02:17,360 计算机新领域, 文稿排版的软件。 42 00:02:17,800 --> 00:02:22,060 我帮助那些报社用电脑终端 43 00:02:22,060 --> 00:02:23,900 代替记者们常用的打字机。 44 00:02:23,900 --> 00:02:24,936 我编写软件, 45 00:02:24,936 --> 00:02:28,780 并实地考察,去像 《堪萨斯城明星报》这样的地方, 46 00:02:28,780 --> 00:02:31,296 这那里,我训练那些用户, 并得到反馈。 47 00:02:31,296 --> 00:02:33,100 这些实战经历 48 00:02:33,100 --> 00:02:36,400 与我在MIT实验室里 所体验到的大相径庭。 49 00:02:37,880 --> 00:02:40,526 在那之后,我就成为了 50 00:02:40,526 --> 00:02:45,320 DEC第一个文字处理器软件的 项目主管,又是一个新领域。 51 00:02:45,720 --> 00:02:51,266 和文稿排版软件一样, 最重要的是做出一个 52 00:02:51,266 --> 00:02:55,470 对于非计算机领域人士 既自然,又高效的用户页面。 53 00:02:56,360 --> 00:03:00,376 在DEC之后, 我又去了一家小公司工作, 54 00:03:00,376 --> 00:03:06,480 他们做的是快餐领域中 基于微处理器的电子收银机。 55 00:03:07,360 --> 00:03:11,096 但是我一直以来都想和我在MIT, Multics项目中认识的好友 56 00:03:11,096 --> 00:03:13,486 鲍勃·弗兰克斯顿一起开一家公司。 57 00:03:13,486 --> 00:03:17,170 所以,我决定回到学校, 尽我所能的学习一下商业经营。 58 00:03:17,170 --> 00:03:19,930 之后,在1977年的秋天, 59 00:03:19,930 --> 00:03:23,000 我加入了哈佛商学院的MBA项目。 60 00:03:23,840 --> 00:03:26,320 我就是那一小部分 61 00:03:26,320 --> 00:03:29,200 有计算机编程背景的学生之一。 62 00:03:30,080 --> 00:03:33,096 这是年鉴中我的照片, 我坐在前排。 63 00:03:33,096 --> 00:03:34,096 (笑声) 64 00:03:34,096 --> 00:03:36,966 在哈佛,我们是以 案例分析的方式学习的。 65 00:03:36,966 --> 00:03:38,926 我们每天大约做三个案例分析。 66 00:03:38,926 --> 00:03:44,640 每个案例都是由好几十页纸组成的, 描述了某个具体的企业经营情况。 67 00:03:45,600 --> 00:03:50,206 它们通常会有演释,这些演释中 经常会有一些字母和数字, 68 00:03:50,206 --> 00:03:53,360 而它们的排列只在 特定的情况下才有意义。 69 00:03:53,840 --> 00:03:55,760 它们通常都是完全不同的。 70 00:03:55,760 --> 00:03:56,880 这是我的作业。 71 00:03:56,880 --> 00:04:00,200 又是数字,字母, 以一种有意义的方式排列。 72 00:04:00,200 --> 00:04:04,320 计算量非常大—— 我们的效率都快接近计算器了。 73 00:04:04,720 --> 00:04:06,840 事实上,这是我当时用的计算器。 74 00:04:08,200 --> 00:04:11,016 在万圣节,我还穿成了计算器的模样。 75 00:04:11,016 --> 00:04:12,440 (笑声) 76 00:04:13,785 --> 00:04:17,026 在每节课的开始,教授都会叫一个人 77 00:04:17,026 --> 00:04:18,279 去汇报案例。 78 00:04:19,079 --> 00:04:21,886 他们通常会介绍一下案例, 79 00:04:21,886 --> 00:04:25,600 然后口述一下信息, 教授就会把信息转录到 80 00:04:25,600 --> 00:04:28,249 教室最前方的电动黑板上, 81 00:04:28,249 --> 00:04:30,060 然后我们会就此展开讨论。 82 00:04:30,060 --> 00:04:34,530 最令人沮丧的事情之一 就是当你做完了所有的作业, 83 00:04:34,530 --> 00:04:37,646 然而第二天早上一来, 发现出了一个小错误, 84 00:04:37,646 --> 00:04:40,150 然后其它的数据就跟着都算错了。 85 00:04:40,150 --> 00:04:42,016 这样你就没法参与课堂讨论了。 86 00:04:42,016 --> 00:04:44,520 可是我们是根据课堂参与度打分的。 87 00:04:45,320 --> 00:04:50,240 所以,跟着其它87个人同坐在 一个教室里,我经常开小差。 88 00:04:51,280 --> 00:04:55,176 那个年代,大多数的程序员 都是主攻中央处理器的, 89 00:04:55,176 --> 00:05:01,506 建造一些像是库存系统,工资系统 或是账单处理系统之类的。 90 00:05:01,520 --> 00:05:04,066 但是我曾在互动语言处理 91 00:05:04,066 --> 00:05:06,186 和按需个人计算领域工作过。 92 00:05:06,186 --> 00:05:10,440 我没有考虑打印纸或是穿孔纸, 93 00:05:10,880 --> 00:05:13,686 而是想象出了一个神奇的黑板, 94 00:05:13,686 --> 00:05:17,076 只要擦掉一个数字, 然后再写一个新的进去, 95 00:05:17,080 --> 00:05:19,966 所有其它的数据都会跟着自动改变, 96 00:05:19,966 --> 00:05:21,720 就像是数字领域的文字处理过程。 97 00:05:22,600 --> 00:05:26,840 我想象我的计算器 能在底部有鼠标和硬件, 98 00:05:27,240 --> 00:05:30,200 上方还有个显示屏, 就像是一架战斗机。 99 00:05:30,720 --> 00:05:34,886 这样,我就可以输一些数字进去, 然后圈中它,按下求和键。 100 00:05:34,886 --> 00:05:38,656 这样,在谈判桌上 我们就能够得到结果了。 101 00:05:38,656 --> 00:05:41,640 现在,我只需要 把我的理想变为现实了。 102 00:05:42,640 --> 00:05:45,080 我父亲教会了我如何设计原型。 103 00:05:45,560 --> 00:05:47,366 他给我展示了那种为了找到 104 00:05:47,366 --> 00:05:50,576 小册子上正确印刷位置 105 00:05:50,576 --> 00:05:53,176 而制作的模型。 106 00:05:53,176 --> 00:05:56,116 他使用这些模型 去收集来自用户的反馈, 107 00:05:56,116 --> 00:05:59,680 当得到好的回复时, 他就把他的作品送到印刷厂。 108 00:06:00,440 --> 00:06:05,576 试图去建立一种简单的, 可用的版本的行为 109 00:06:05,576 --> 00:06:07,880 迫使你去揭露那些关键问题。 110 00:06:08,720 --> 00:06:13,120 而且这也使你能够 更加低成本的解决那些问题。 111 00:06:13,720 --> 00:06:15,960 所以我决定去建造一台原型机。 112 00:06:16,760 --> 00:06:21,376 我前往了一个连接在 哈佛分时系统里的视频终端 113 00:06:21,376 --> 00:06:22,896 并开始了工作。 114 00:06:22,896 --> 00:06:26,176 我遇到的最基本的一个问题就是: 115 00:06:26,176 --> 00:06:28,840 如何表达算式中的数值呢? 116 00:06:29,280 --> 00:06:31,210 我来解释一下。 117 00:06:32,000 --> 00:06:34,216 我想象你会指向某个方向, 118 00:06:34,216 --> 00:06:37,336 输入某个单词, 然后在另一个位置, 119 00:06:37,336 --> 00:06:40,844 放进一些数字,更多的数字, 指一下你想要得到结果的地方。 120 00:06:41,240 --> 00:06:44,496 指向第一个数字,放上减号, 再指向第二个数字, 121 00:06:44,496 --> 00:06:45,680 然后得到结果。 122 00:06:46,360 --> 00:06:49,806 问题在于: 我应该把什么放进公式里呢? 123 00:06:49,806 --> 00:06:52,460 这就需要电脑去知道 该把什么东西放进去 124 00:06:52,460 --> 00:06:54,166 而当你看见公式的时候, 125 00:06:54,166 --> 00:06:57,160 你就需要知道在屏幕上 它所代表的位置含义。 126 00:06:57,840 --> 00:07:00,766 我最初想到的是以一种 程序员的方式去做这件事。 127 00:07:00,766 --> 00:07:02,615 当第一次你指向一个位置的时候, 128 00:07:02,615 --> 00:07:05,369 电脑会要求你输入一个特殊的名称。 129 00:07:06,760 --> 00:07:10,566 而很快事情就变得清晰起来了, 这个过程太单调乏味了。 130 00:07:10,566 --> 00:07:13,800 电脑要能够自动的编译名称 并把它放进所指定的位置。 131 00:07:14,600 --> 00:07:18,960 所以我就想,为什么不让他们 以一种你们创造他们的顺序排列? 132 00:07:19,480 --> 00:07:22,006 我尝试了。数值1,数值2。 133 00:07:22,006 --> 00:07:24,412 然后,很快我就意识到了, 如果你的数字很多, 134 00:07:24,412 --> 00:07:26,796 要想记住它们在屏幕上的 位置是根本不可能的。 135 00:07:26,796 --> 00:07:32,636 然后我就说,为什么 不让你们随便把数值放在哪里, 136 00:07:32,640 --> 00:07:34,530 然后我来用一个表格进行限制? 137 00:07:34,720 --> 00:07:36,976 然后当你指向一个单元格, 138 00:07:36,976 --> 00:07:39,680 电脑就会自动生成携带名字的行与列。 139 00:07:40,640 --> 00:07:46,866 然后,如果我把它做的和地图一样, 在顶上横向生成ABC,侧面纵向生成数字, 140 00:07:46,866 --> 00:07:49,776 那么当你在公式中看到B7时, 141 00:07:49,776 --> 00:07:52,100 你就会准确的知道 它在屏幕中的位置了。 142 00:07:52,640 --> 00:07:56,880 如果你必须要手动输入公式的时候, 你也会知道该怎么做。 143 00:07:57,440 --> 00:08:00,520 把这些都限制在表格当中 解决了我的问题。 144 00:08:01,200 --> 00:08:06,800 这也开启了一些新的功能, 比如设定单元格的操作范围。 145 00:08:07,240 --> 00:08:08,996 但是它并非很死板—— 146 00:08:08,996 --> 00:08:13,280 你仍旧可以把任何值, 任何公式放进任意的单元格当中。 147 00:08:14,120 --> 00:08:17,960 这就是我们一直到今天 都在做的,将近40年之后。 148 00:08:19,109 --> 00:08:22,836 我的朋友鲍勃和我决定 要一起制作这个产品。 149 00:08:22,836 --> 00:08:27,256 我花了更多的时间去研究 这个程序究竟该如何运作。 150 00:08:27,256 --> 00:08:30,496 我还写了一篇参考文档,用作记录。 151 00:08:30,500 --> 00:08:35,336 这也帮助了我确保 我所定义的用户界面 152 00:08:35,336 --> 00:08:38,799 可以向普通人简洁,清晰地阐述。 153 00:08:39,520 --> 00:08:44,976 鲍勃是在马萨诸塞州阿灵顿市 租的公寓小阁楼上工作的。 154 00:08:44,976 --> 00:08:46,680 这就是小阁楼的内部。 155 00:08:48,240 --> 00:08:51,066 鲍勃购买了MIT,Multics的分时系统, 156 00:08:51,066 --> 00:08:53,760 用于在像这样的终端上书写代码。 157 00:08:54,400 --> 00:08:57,936 然后他就会使用声音耦合器,通过电话线 158 00:08:57,936 --> 00:09:01,206 将测试版本下载到借来的Apple II电脑上, 159 00:09:01,206 --> 00:09:02,650 然后我们就会测试它。 160 00:09:02,920 --> 00:09:07,640 我准备的测试之一就是百事挑战。 161 00:09:08,720 --> 00:09:11,640 那时还没法打印,所以 我只能将所有东西抄录下来。 162 00:09:12,480 --> 00:09:14,880 当时也没有保存功能, 所以每次程序崩溃时, 163 00:09:14,880 --> 00:09:17,920 我都必须将所有的公式 都一遍又一遍地重输进去。 164 00:09:18,240 --> 00:09:21,970 第二天在课堂上,我举起了我的手; 我被叫到了台上展示案例。 165 00:09:21,970 --> 00:09:25,866 我做了一个五年的预测。 我做了各种各样的情景预期。 166 00:09:25,866 --> 00:09:29,520 我成功的做出了这个案例, VisCalc已经很有用了。 167 00:09:30,160 --> 00:09:32,760 教授就问,“你是怎么做出来的?” 168 00:09:33,469 --> 00:09:36,166 不过,我不想告诉他我们的秘密项目。 169 00:09:36,166 --> 00:09:37,680 (笑声) 170 00:09:38,060 --> 00:09:39,636 所以我就说,“我选取这个,加上这个, 171 00:09:39,636 --> 00:09:41,736 然后乘以这个,然后再减去那个。” 172 00:09:41,736 --> 00:09:43,796 他说,“好吧,你为什么不用比率呢?” 173 00:09:43,796 --> 00:09:47,366 我说,“哈!因为用比率 就没有那么准确了!” 174 00:09:47,366 --> 00:09:50,036 但我没有说的是:“除法暂时还不好用。” 175 00:09:50,036 --> 00:09:53,086 (笑声) 176 00:09:53,086 --> 00:09:56,966 最后,总而言之,我们确实 把VisCalc做的足够完整了, 177 00:09:56,966 --> 00:09:58,800 可以把它向大众展示了。 178 00:09:59,440 --> 00:10:01,410 我父亲就把参考文档的 小样打印了出来。 179 00:10:01,410 --> 00:10:03,440 我们就把它当作我们的宣传材料。 180 00:10:04,280 --> 00:10:10,010 在1979年的六月,我们的出版商 在纽约大型计算机会议上的 181 00:10:10,010 --> 00:10:14,200 一个小摊位上, 把VisCalc介绍给了全世界。 182 00:10:14,800 --> 00:10:18,960 纽约时代周刊为 这次的会议写了一篇趣评。 183 00:10:19,480 --> 00:10:21,966 “机器正在表演看似宗教仪式的东西…… 184 00:10:21,966 --> 00:10:23,371 信徒们不断聚集而来, 185 00:10:23,371 --> 00:10:26,501 画家们不断聚集到大型场所,加入圣殿, 186 00:10:26,501 --> 00:10:29,696 仔细地在巨大的黄板上写下 巨大黑色的‘VISCALC’字样。 187 00:10:29,696 --> 00:10:31,526 所有人都在为VISCALC喝彩!” 188 00:10:31,526 --> 00:10:35,116 那可是纽约时报啊: “所有人都在喝彩,VISCALC!” 189 00:10:35,120 --> 00:10:36,656 (笑声) 190 00:10:36,656 --> 00:10:40,926 这也是最后一次一个电子表格 191 00:10:40,926 --> 00:10:44,810 能在流行商业新闻中红两年。 192 00:10:44,810 --> 00:10:46,950 大多数人还不是很理解。 193 00:10:46,950 --> 00:10:48,350 但是有些人理解了。 194 00:10:48,920 --> 00:10:53,120 在1979年10月,我们发售了VisCalc。 195 00:10:53,880 --> 00:10:56,660 它的包装刚到的时候是这样的。 196 00:10:56,660 --> 00:10:59,200 当它在Apple II上运行的时候是这样的。 197 00:11:00,000 --> 00:11:01,960 剩下的,按照他们的说法,就是历史了。 198 00:11:02,360 --> 00:11:04,486 现在,这个故事还有好大一截子呢, 199 00:11:04,486 --> 00:11:06,576 但是我只能留到过两天再说了。 200 00:11:06,576 --> 00:11:08,800 尽管如此,但是有一点, 哈佛还记得这事。 201 00:11:09,400 --> 00:11:10,850 这就是当时的教室。 202 00:11:11,240 --> 00:11:14,680 他们居然竖了块儿牌子 来纪念当时这儿发生的事。 203 00:11:15,640 --> 00:11:18,040 (掌声) 204 00:11:24,400 --> 00:11:27,446 但这也是一个提醒, 205 00:11:27,446 --> 00:11:32,850 那就是,你们一样,也能够 运用你们的特殊背景,技能和需求 206 00:11:32,850 --> 00:11:38,196 去设计原型,并发现, 解决那些关键问题, 207 00:11:38,196 --> 00:11:40,530 然后通过这一切,改变这个世界。 208 00:11:41,040 --> 00:11:42,046 谢谢。 209 00:11:42,046 --> 00:11:46,880 (掌声)