本文授权转载自公众号余晟以为,特此感谢余老师!

按:2018年,一个偶然的机会,我以审校者的身份,参与到蒋楠先生翻译的《计算机简史》的过程当中来,并在这个过程中获益良多。今天这本书终于上市了,这是我的推荐序。

我始终认为,有一些课程是计算机专业本科应当认真教,却很遗憾没有做好的,比如软件工程,再比如今天我要说的计算机简史。

如今,但凡学习一个新的知识领域,多半要从了解其历史开始。对我们普通人来说,知道了起源和由来,知道了“背后的故事”,理解起来才更加容易。但是回忆我们对计算机的学习,似乎全然不是这样。计算机似乎是从石头缝里蹦出来的,“正经”的教育直接从二进制开始的,因为计算机“就是”这样工作的。

我们很多人也听说过图灵、冯·诺伊曼、ENIAC、分析机等等名词,但羞愧的是,在很长的时间里,我都只有一些模糊的印象,也不知道它们之间的联系到底如何。总之,计算机科学不需要了解历史,身后无足轻重,前方充满未知,不善交流的技术狂人不经意之间就改变了世界。

但是,事实真的如此吗?

软件行业流传着一幅漫画,开发软件就像制造小轿车,不是一开始就有设计图,轮子、车身、车门、发动机按部就班安上去就可以的,大概先是独轮车,接着是自行车,然后是滑板车,之后是三轮自行车,继而是两轮摩托车…… 如此反复迭代,最后才得到成型的小轿车。这幅漫画讽刺的是开发新系统时“想当然”的做法,反映的是真实的探索过程。

其实,不只开发新系统是这样,计算机本身的发展也是这样。了解计算机发展的曲折过程,才能把各种关于计算机的知识归纳为有机的统一体,找到它们之间千丝万缕的联系,才能立体地了解这个行业。不信的话,且让我举几个例子。

第一个例子是差分机。

19世纪30年代,银行家查尔斯·巴贝奇先发明了差分机,用来计算数学用表,这样,复杂的计算只要查表就能完成。差分机获得了广泛的赞誉,但巴贝奇不满足,他希望机器不应当只用来算数,还应当有更广泛的用途。

于是,他把自己剩下的生命都投入到了分析机的制造当中。巴贝奇设计的分析机有几大突破:第一,它应当可以解决各种问题而不局限于计算;第二,应当有一般性的办法来描述解决问题的过程,而不是每个过程都有自己的语言;第三,它的计算和存储是分离的。

如今我们看到,第一点正是后来图灵的突破性贡献,所谓“通用机”,其“通用”正在于此;第二点中的“一般性办法”,就是如今大家熟悉的编程;第三点是极具前瞻性的,如今大家熟知的冯·诺伊曼结构里,计算器、控制器、存储器、输入输出是互相分离的部分。有意思的是,冯·诺伊曼在设计时深受生物学的影响,所以计算机的“内存”才叫memory,与生物体的“记忆”是同一个单词。

可是,从巴贝奇设计分析机到哈佛大学和IBM实现真正意义上的通用计算机,中间还有一百多年,为什么花了这么久呢?因为巴贝奇当时完全以齿轮、条杆的机械方式制造分析机,而分析机的制造工艺远远超出了当时机械加工的水平。一份设计当然可以很巧妙,但如果超前于当时的技术实现,多半只能遗憾停留在蓝图上。这个道理不只适用于巴贝奇,在如今的软件开发中仍然成立。

而且,因为分析机不成功,后人干脆停止了这种“通用机”的探索,转而采用模拟方式解决问题。比如有重大现实意义的潮汐计算,不是通过数学和物理公式来完成,而是通过一系列线缆、滑轮、传动轴、齿轮,来从物理上微观模拟海上的重力变化,再绘制出水位的变化。对今天的科研人员来说这大概有点荒谬,但当时,此办法的确解决了问题。这个故事再一次告诉我们,科学从来也不是直线前进的。

第二个例子是实时系统。

如今大家都习惯于计算机的“实时”反馈,点击马上就得到反应,运行就可以看到结果。但是在计算机诞生的很长时间里,它只要能足够快地计算预先设定的任务,正确给出结果即可。“实时”这种奢侈的特性,在强烈的需求诞生之前,是不会有资源去实现的。

“实时”的第一个强烈需求,来自美国海军的飞行模拟器。随着军用飞机速度的不断提升,机型的不断增加,传统的真机培训飞行员的做法已经日益过时,海军必须有成本足够低、效率足够高、效果足够好的办法来批量培训合格飞行员,这就是飞行模拟器。飞行模拟器要真正起作用,就必须实时对飞行员的操作给出反馈,传统的机械结构已经无能为力。

1945年,通过一个偶然的机会,负责研制飞行模拟器的麻省理工学院伺服机构实验室助理主管福里斯特知道了数字计算机。他迅速意识到,相比传统的圆盘、齿轮、电阻来模拟飞机的状态,数字计算机有无与伦比的优势,于是他力排众议改变项目计划,以数字计算机为基础研制飞行模拟器。

这种方案在理论上可行,但实现上还有困难,因为当时的计算机采用水银延迟线存储,每秒计算速度只有不到一万次,而飞行模拟器要求运算速度至少达到每秒十万次。关键时刻,福里斯特又做了一个重大决策,斥巨资投入当时前景尚不明朗的静电存储管。结果到后来,飞行模拟器反而成了次要目标,配备经典存储管的,性能强悍的“旋风”计算机才是最终结果。尽管海军对这一结果并不满意,但有价值的新技术总会在意想不到的领域找到落脚点。

1949年,苏联爆炸了第一颗原子弹,美国空军发现,如果要构建安全有效的防空网,必须要有足够强的计算能力,把各方面信息综合起来,并统一调度截击机、高射炮以及后来的防空导弹。

又是一个偶然的机会,防空工程委员会的主要委员瓦利教授知道了海军正在研制的“旋风”计算机,于是空军接力提供后续的资金,同时技术制造工作也从麻省理工逐渐转向IBM。最终诞生的“半自动地面防空系统(SAGE)”,其价值虽然因为洲际导弹的出现大打折扣,却催生了包含软件、硬件、通信在内的一整套生态,无数的民间承包商从中获得了宝贵的机会,最终在IT领域大展拳脚。

在SAGE开发中获得了足够多宝贵经验的IBM迅速发现,民用航空市场对实时计算的需求极其旺盛。当时民用航空市场正在井喷式增长,但订票服务仍然保持着相对原始的方式,许多人为了保险起见,不得不一次订两张票,起飞前再退掉一张,这反而又加重了订票系统的压力。依靠SAGE的经验,IBM斥巨资开发了SABRE系统,并于1964年首次投入使用。第二年,航空公司就因为客座率提高、客户服务的提升收回了成本。

从此,实时计算开始蔓延开来,在信用卡等等新的领域大显神威,结果,才有今天我们“想当然”的实时服务。

第三个例子来自IBM。

如今许多人提到IBM,想到的是蓝色巨人,想到的是它历史上制造的各种大型机。但是,IT行业的成功从来也不单纯是技术的成功,IBM显然深谙此道。

计算机的流行,很大程度上得益于它成为了通用的“办公机器”。而真正大规模生产的办公机器的历史并不长,19世纪出现的打字机,堪称最早的办公机器。在打字机刚诞生的日子里,市场上充斥着大大小小、各种品牌的打字机。最后,只有一家胜出,那就是雷明顿打字机公司。

雷明顿公司为什么能够胜出呢?依靠的并不是独树一帜的产品质量,也不是独步天下的专利技术,而是通过探索准确把握了三大特点:

第一,要有完善的产品,而且价格能让客户负担得起;

第二,有专门的销售机构负责销售,在各地设立销售代表的做法并无先例,所以一开始颇受行业排斥,雷明顿公司不得不依靠一己之力,在欧洲各大城市设立办事处;

第三,需要有专门的培训机构,保证有足够多的用户使用自己的产品,据统计,1900年美国已经有8.6万名女打字员,而1880年只有2000人。数量庞大的女打字员成了一股不可忽视的惯性,对雷明顿公司的市场地位是非常好的保障。

雷明顿公司探索出的这三点玩法,后续被计算机行业的公司完整继承下来。今天我们带着这种视角去看IBM就会知道,IBM的成功从来不单纯是技术的成功:在IBM如日中天的岁月,谁也没法忽略IBM庞大的销售团队;而PC的市场份额之所以远高于Mac,赢得了广大开发者支持正是关键因素之一。

遗憾的是,虽然在这个行业工作了十多年,所有这些精彩的故事,这些巧妙奇特的联系,都要等到如今读《计算机简史》才算懂得。到今天,我们的计算机教育在谈起历史的时候,仍然只强调技术的贡献,结果许多人印象里,计算机的世界就是“技术决定一切”。到工作之后,“技术至上”的思维惯性仍然存在,“技术至上”的傲慢不经意间就冒出来。

然而纵观计算机的历史,成功永远是充满了机遇巧合的复杂过程,是多种因素角力的结果,是多种考虑综合的权衡。技术从来不是唯一的决定性因素,所谓“(单凭)技术改变世界”,其实是玫瑰色的泡影。拥有了技术创新就斗志昂扬,希望横扫天下,最后碰得头破血流的例子,几乎随处可见。

没错,技术的伟大力量激励了无数人想要成功,想要改变世界。但是要想成功,想要改变世界,单凭技术好是绝对不够的,还必须尊重其它力量,顺应客观规律——所以我时常在想,如果我们早早在学校里能明白这样的道理,该是多好?

好在,现在补课,也不算晚。


注:《计算机简史》由蒋楠翻译,图灵公司出品,人民邮电出版社出版。现已在各大书店上架,感兴趣的朋友可以直接搜索,也可以点击“原文链接”直抵京东对应页面。

如果您认为本文有意思,欢迎长按识别上面的二维码订阅。

计算机简史这门课,现在补,并不晚相关推荐

  1. 计算机英语这门课上后感1000,英语教师听课心得体会作文

    为期两天的古冶区小学英语优质课评比与观摩活动已圆满结束,这为我们英语教师的业务素质的提高提供了一次不可多得的学习机会.通过这次听课,我觉得在教育教学方面收获很多.虽然这10节优质课的水平不一,风格各异 ...

  2. 计算机英语这门课上后感1000,2018开学第一课观后感1000字

    2018开学第一课观后感1000字 <开学第一课>是教育部与中央电视台合作的大型公益节目.自2008年起,教育部就和中央电视台密切合作,于每年新学年开学之际推出<开学第一课>本 ...

  3. B站收藏6.1w+!这门课拯救你薄弱的计算机基础

    作者 |  Rocky0429 来源 |  Python空间 大家好,我是 Rocky0429,一个对计算机基础一无所知的蒟蒻... 作为一个所谓的计算机科班出身的人来说,特别难为情的是自己的计算机基 ...

  4. 计算机学科专业知识两门课,计算机学科两门专业课的融会贯通教学改革探讨

    摘要:该文主要介绍通过学习"微型计算机原理与接口技术"和"计算机组成与结构"两门课程之间的联系,培养学生融会贯通知识的能力,提高学生从宏观上理解和掌握知识,解决 ...

  5. 计算机专业要学几门课呀,计算机专业学生一定要学好这几门课!

    很多程序员,包括计算机专业出身的程序员,也包括通过自学成为程序员的非科班同学,在工作一两年后甚至更久后,基本上都会碰到技术瓶颈,由此可能产生很长一段时间的迷茫期. 本文的题目是"计算机专业学 ...

  6. python作业:学生成绩表数据包括:学号、姓名,高数、英语和计算机3门课成绩

    1.学生成绩表数据包括:学号.姓名,高数.英语和计算机3门课成绩,计算每个学生总分,每课程平均分,最高分和最低分.要求:用函数和模块化程序设计方法实现. 请在[python数据分析之禅]gzh后台,回 ...

  7. 计算机课高数怎么过,我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好,...

    我是大一新鸟,学软件,想向大虾们讨教几手,我有高数,英语,法律.计算机,4门课,我该怎么学!介绍越详细越好, 來源:互聯網  2009-07-30 08:58:23  評論 分類: 煩惱 >&g ...

  8. 中小学课程新增计算机教育,教育部通知:中小学将新增这门课?家长:真辅导不了……...

    原标题:教育部通知:中小学将新增这门课?家长:真辅导不了-- 全文共1732字,阅读大约需要4分25秒 . 中国未来社会需要的,是那种逻辑思维缜密,能够应对变化,提出独特想法的创造性人才. -- 清华 ...

  9. 【转】34门课改变人生——牛人自学计算机总结

    [转]34门课改变人生--牛人自学计算机总结 2014-06-06 15:50 转载说明:在人人网上看到一个在美国学生物的硕士通过MOOC学习最终找到IT工程师工作的故事,非常励志,而且每门课都有很有 ...

最新文章

  1. gorm增删查改json_gorm 关联查询请教
  2. TF版本升级问题:成功解决AttributeError: module tensorflow has no attribute mul
  3. P4301-[CQOI2013]新Nim游戏【线性基】
  4. [剑指Offer]替换空格
  5. 前端学习(1755):前端调试值之如何监控统计没有用到的脚本
  6. 再见,中关村“金三角”!
  7. HTML画廊效果,HTML5实践-使用css装饰图片画廊的代码分享(一)
  8. h5保存图片到手机_如何快速制作一个【H5】作品?
  9. Unix系统中Shell概述
  10. Character controller
  11. div可拖拽移动js方法
  12. Arranging The Sheep(移动思维)
  13. ShopNum1网店系统标准版常见问题总结
  14. docker常用命令及镜像的制作与上传
  15. JS标准内置对象 数组 的 34 个方法
  16. 施一公 学生如何提高专业英文阅读能力
  17. Linux涂鸦智能网关面板Turnkey方案
  18. 酷睿i9-13900K性能出炉Steam游戏开发首选驰网独家i9-13900K服务器水冷定制高主频游戏服务器
  19. windows电脑使用nvm安装node,管理node版本
  20. 重启计算机登录另外的本地账户,Win10退出Microsoft账户切换回本地帐户

热门文章

  1. IntelliJ IDEA设置背景为护眼色(护眼绿)
  2. 医学图像分割论文学习——深度学习方法在3DMRI影像中解开并分割小肠(2022)
  3. 数据挖掘与机器学习课程总结
  4. 崛起2010:大陆手机芯片“F4”
  5. 极客大学架构师训练营大作业
  6. 关于vant里面的元素px转rem
  7. c# 判断字符串是否包含字母数字
  8. 怎么更改苹果账户名称_淘宝账号开店以后想改名字怎么办?哪些信息不能修改...
  9. redis连接工具Another Redis Desktop Manager
  10. 附答案 算法+数据结构+代码 微软Microsoft、谷歌Google、百度、腾讯