计算机简史:你想不通去脉,是因为不了解来龙

作者 | 吕建伟

头图 | 早期计算机 kdf9,CSDN 下载自东方 IC

来源 | 本文经授权转自阿朱说(ID:azhushuo)

我们从 1950 年以后经历了大型机(IBM 为代表)、小型机(DEC 为代表)、个人电脑微机(Apple 为代表)、笔记本电脑(1985 年东芝 1100 是世界上第一台笔记本电脑),乃至 MP3(世界上第一台 MP3 是 1998 年三星生产的,Apple iPod 诞生于 2001 年)、平板电脑(iPad)、手表(iWatch)、智能手机(先是 Nokia 的 Symbian 智能手机,后是 Apple 的 iPhone)。

我们也走过了有线电报、无线电报、有线电话、无线手机(世界第一部手机是摩托罗拉公司工程师马丁·库帕在 1973 年发明)这些电信时代,我们也走过了电脑以太局域网时代、电脑电话线拨号上网时代、电脑 ADSL 上网时代、电脑 Wi-Fi 上网时代、手机 Wi-Fi 上网时代、手机 2G/3G/4G 上网时代。

我们有必要对这百年的 ICT 工业是如何交汇促进做个简单的历史梳理。你不明白这些历史,你就不明白为何现在是这样。

计算机有几个核心组成:

芯片/CPU

存储

网络

显示器

键盘

操作系统

数据库

中间件

编程语言

芯片

1904 年英国科学家弗莱明发明了电子真空二极管。1882 年,弗莱明曾担任爱迪生电光公司技术顾问,1896 年,马可尼无线电报公司成立,弗莱明被聘为顾问。1946 年,世界上第一台通用计算机 ENIAC 诞生,用了 1.7 万根真空电子管和 7200 根二极管、7 万个电阻器和 1 万个电容器、1500 个继电器和 6000 个开关。每秒可以做 5000 次加法或 400 次乘法,是使用继电器运转的机电式计算机的 1000 倍。

晶体管的发明(图源:CSDN 下载自东方 IC)

1947 年贝尔实验室的肖克利博士发明了晶体管。1956 年,肖克利博士创办实验室吸引了诺伊斯、摩尔等青年才俊加盟,但是经过一年时间也没有做出什么可商业销售的产品。1957 年,最年长的诺伊斯寻求到生产照相机与电子设备的仙童摄影器材公司老板费尔柴尔德的资助,带领众人离开肖克利实验室,成立了仙童半导体公司。

1958 年,德州仪器的杰克·基尔比发明了世界上第一块半导体集成电路:锗集成电路,并因此获得 2000 年的诺贝尔物理学奖。和基尔比前后脚,诺伊斯也研制出了世界上第一块硅集成电路。

1958 年,IBM 给了他们第一张订单,订购 100 个硅晶体管,用于 IBM 电脑的存储器。1968 年,诺伊斯和摩尔,带着格鲁夫脱离仙童公司,创办 Intel。1971 年 11 月,Intel 研制出世界第一款商用计算机的微处理器:4004 芯片,因此 Intel 公司完成了从单一的存储器制造商向微处理器制造商的转型。

1983 年,Altera 发明了世界上第一块可重复擦写编程的芯片,后被 Intel 收购。1984 年,赛灵思发明 FPGA 芯片。

1978 年 12 月 5 日,英国物理学家赫尔曼·豪泽(Hermann Hauser)和工程师 Chris Curry,在英国剑桥创办了 CPU 公司(Cambridge Processing Unit),他们先是为赌博机设计控制系统。1984 年英国 BBC 做了一款普及计算机技术的节目,希望能有配套的电脑:功能丰富但价格又不能太贵(听起来像步步高学习机的套路),豪泽就接下了这个活儿。他们使用摩托罗拉的 6502 芯片,这是一颗 8 位、主频 2 赫兹的 CPU。乔布斯当时研发 Apple I 也是使用的这款 CPU。后来豪泽他们想升级到 16 位,但是摩托罗拉公司的 16 位芯片太慢也太贵。他们转而向 Intel 公司索要 80286 芯片的设计资料,但是 Intel 判断可能会培养一个潜在竞争对手,于是就拒绝了他们,他们只能被迫自行研发。1985 年,Roger Wilson 和 Steve Furber 设计了他们自己的第一代 32 位、6M Hz 的处理器,用它做出了一台 RISC(精简指令集)的计算机,简称 ARM(Acorn RISC Machine)。这就是 ARM 这个名字的由来。由于功耗小、价格便宜,而且和摩托罗拉设计思路有相似性,所以 Apple 公司研发设计牛顿 PDA 的时候就想到了他们。1990 年 11 月 27 日,苹果公司出资 150 万英镑,芯片厂商 VLSI 出资 25 万英镑,他们本身则以 150 万英镑的知识产权和 12 名工程师入股,这样,ARM 公司正式成立。就是因为这样奇怪的组成结构,所以 ARM 公司既不生产芯片也不销售芯片,它只出售芯片技术授权。

存储

1801 年,法国人约瑟夫·玛丽·雅卡尔发明了打孔卡用在控制织布机织出的图案。1880 年代,美国人口调查局职员赫尔曼·何乐礼发明了用于人口普查数据的穿孔卡片及机器,并用于 1890 年美国人口普查,仅 6 周就完成了统计。1896 年,Herman Hollerith 成立了制表机公司,专门生产用于计算的打孔卡和打孔机。1911 年,在金融家 Charles Flint 的投资并购撮合下,制表机公司、列表机公司、以及拥有存储技术的国际时代唱片公司三家合并,成为现在的 IBM 公司。其实这么来看,打孔卡、唱片,都算是信息存储介质。

1928 年 Fritz Pfleumer 发明了录音磁带,可以存储模拟信号。1951 年,磁带首次被用于计算机上存储数据。

1946 年 Jan A. Rajchman 团队发明的静电记忆管 Selectron Tube,这是世界上最早的随机存取数字存储器(RAM),使用静电荷存储数据在真空管内。它能够短暂存储大约 4000 字节。1947 年 Freddie Williams 和 Tom Kilburn 发明了类似原理的威廉姆斯-基尔伯恩管(Williams–Kilburn tube)并商用。IBM 的第一台商用科学计算机 701 就使用了 72 个该管做内存。701 计算机也是世界上第一个能存储程序的计算机。1947 年 Frederick Viehe 第一个申请了磁芯存储器的专利,1948 年华裔王安实现了对磁芯存储器的写后读(Write-after-Read),并且于 1949 年申请了专利,以 50 万美元的价格卖给了 IBM。1966 年 IBM Thomas J. Watson 研究中心的 Robert H. Dennard 发明了(动态随机存取存储器)DRAM,1968 年申请了专利。1970 年,Intel 公司推出 Intel 1103,这是第一个商用 DRAM 芯片。

1956 年,世界上第一个硬盘驱动器出现在了 IBM 的 RAMAC 305 计算机(第一台提供随机存取数据的计算机,同时还使用了磁鼓和磁芯存储器)中。该驱动器约有两个冰箱大小,重达一吨,包含 50(还是 40?)个 24 英寸盘片,能存储 5M 的信息,数据传输速度 10K/S。1962 年,IBM 发布了第一个可移动硬盘驱动器 1311,它有六个 14 英寸的盘片,可存储 2.6MB 数据。1973 年,IBM 发明了 Winchester(温氏)硬盘 3340,其特点是工作时磁头悬浮在高速转动的盘片上方,而不与盘片直接接触,这便是现代硬盘的原型。1978 年,IBM 推出第一个 RAID(独立磁盘冗余阵列)并申请技术专利。

1968 年 IBM 的 Alan Shugart 领导的小组开发了只读的 8 英寸软盘(只能存储 79.5KB 的数据)。

1980 年日本人 Fujio Masuoka 为东芝工作时发明了闪存。这也为后来乔布斯研发 iPod 带来了灵感。

网络

计算机产业晚于电信产业。早在 1837 年美国人萨缪尔·摩尔斯就发明了电报,并发明了电报专用编码:摩斯电码。后来 1895 年,意大利人马可尼首次成功收发无线电电报。而电话是 1860 年贝尔发明,1877 年贝尔建立了电话公司,1895 年,贝尔公司将其正在开发的美国全国范围的长途业务剥离出来,建立了一家独立的公司称为美国电话电报公司(AT&T)。

其实互联网的历史比局域网的历史要长的多,根源就在于电信通信网络早于计算机网络。1958 年,AT&T 已经发布了世界上第一款商用的 Modem:Bell 103。调制解调器的作用就是把计算机的数字信号翻译成可沿普通电话线传送的模拟信号,这些模拟信号又被电话线路另一端的另一个调制解调器接收,并译成计算机的数字信号,因此电话通信就和计算机数据传输合二为一了。不过更早的雏形还是来自 IBM,在 1951 年帮助美国军方建设半自动防控警备系统,需要把雷达站-控制中心-指挥中心连接在一起,IBM 已经发明了一整套类似装置进行联网,只不过一直运行在军方没有外泄。

互联网起源于 1969 年的 ARPANet,我们的上网就是始于电话拨号上网的。虽然 1974 年已经发明了 TCP/IP 一套技术体系,但是直到 1982 年,ARPANet 才全部采用 TCP/IP 技术。

局域网就晚很多了。

过去的人们使用计算机都在专用机房里面,在计算机跟前工作。后来发明了哑终端,其实就是一个输出显示器一个输入键盘,通过 RS-232 线缆连接到大型主机上。RS-232 线缆标准是 1970 年由美国电子工业协会联合 AT&T、IBM 这些通信厂商、调制解调器厂商、计算机厂商一起制定的。因为涉及到信号衰减问题,所以最早线缆长度只能达到 30 米,后来不断改进线缆材质,最远能达到 1 公里长度。

后来 1973 年 Bob Metcalfe 从哈佛博士毕业后到施乐公司工作,发明了以太网,把施乐公司的 40 多台计算机串联在了一起。咱们现在都是百兆网卡千兆网卡,但是在 1973 年才 2.9 兆。1979 年,施乐联合 Intel(生产网络处理芯片)、DEC(当时很火的小型机厂商)组成产业标准联盟,制定 10M 以太网标准。IEEE 随即接受“蓝皮书”,用作 802.3 标准的基础。

1979 年,Bob Metcalfe 觉得这是个巨大的商机,于是出来自己创办了 3Com 公司。1981 年生产出来世界上第一张以太网卡,很快就被 IBM 采用作为 IBM PC 的组成部分。当然,计算机之间要联在一起,除了每个电脑上配备一块网卡以外,还得在以太局域网中配备集线器(Hub)设备,以便数据通过 Hub 进行交换,所以世界上第一台以太网络交换设备也是 3Com 生产的。进入百兆以太网时代后,Intel 逐步重视网络芯片,大有后来居上。3Com 为了应对 Intel 就采取开放技术授权方式,让 Lucent、Broadcom、Marvell 等等公司都可以生产网络芯片。但是 3Com 最终没有干过 Intel。

提起网络,不得不提到一家公司,那就是思科。思科的创始人是莱昂纳德·波萨克,曾经加入 DEC 担任过硬件工程师,后来任斯坦福大学计算机系的计算机设备主任,他也是互联网前身 ARPA 网的主要推动人物。1984 年,他发明出了比 3Com 集线器更好的以太网数据交换设备,先在斯坦福大学应用,把斯坦福大学的 5000 台电脑连成一片以太局域网。他希望斯坦福大学支持他制造并销售这种设备,但是斯坦福大学没有答应他这个要求。于是他出来创业搞出来思科。后来互联网崛起,思科也顺势切入了互联网 TCP/IP 路由器领域。

显示器

最早的计算机都是使用电视机作为显示器。

电视机最早由英国工程师约翰·洛吉·贝尔德在 1925 年发明,1926 年,贝尔德向英国报界做了一次播发和接收电视图像信号的表演。

在 1927-1929 年期间,贝尔德做了通过电话电缆进行机电式电视试播。还做了首次短波电视试验。1930 年实现了电视图像和声音同时发播。

直到 1976 年,乔布斯成立苹果公司生产个人电脑 Apple I 时,业界才使用专门的 CRT 技术生产出电脑专用的显示屏。到了 Apple II 系列时,更是增加了彩色显示屏、图形操作系统、鼠标这些源于施乐实验室的技术。发明了激光打印机、复印机、图形操作系统、鼠标、以太网的施乐真是太悲催了,自己一点都没用上。

键盘

说到键盘,不得不说打字机。

第一台实用的打字机,是美国人克里斯托夫·拉森·肖尔斯。但是咱们如今键盘排列习惯的打字机,是和肖尔斯一起合作的约斯特,他发明的打字机采用 26 个键,可以转换大小写,而且可以使打字人随时能看到所打出的字。1874 年正式进入市场。而 IBM 最早生产的打孔机,其实就是把打字机和打孔卡结合的产物,操作者通过打字机输入字母,打孔机会根据转换规则自动输出带孔的卡片。

操作系统

1964 年,在 IBM 没有发明 System 360 大型计算机之前,IBM 已经发明了很多计算机。如 IBM 1952 年发布的第一台商用计算机:701 计算机。1959 年,IBM 首次利用晶体管、磁芯存储器、印刷电路技术,发明了小型数据处理计算机 IBM1401,但这些计算机都没有完整的操作系统概念,算是软件和硬件一体化。IBM 在 1953 年发布 IBM 650 大型主机时,才研发出来汇编语言,使人类终于告别了直接用最原始的 01010 编写程序的历史,人类终于可以靠打字机+打孔卡片,人类输入符合汇编语言规范的字母和数字,打孔机输出的就是用打孔卡片表示的 01010。把打好孔后的卡片送入到计算机的卡片读入设备,计算机就能执行程序了。

1964 年,IBM 发布了 System 360 大型计算机。这算是出现了计算机的操作系统雏形。早期的计算机,都是一个型号就有一套 CPU 指令集。但是 IBM 在设计 System 360 的时候,就做了精良的设计,承诺以后 IBM 出的计算机 CPU 指令集具有向上兼容性,而且 IBM 出的其他系列的计算机,指令集和 System 360 的 CPU 指令集也兼容。为了达到这个标准要求,IBM 就开始抽象出薄薄一层软件,但当时,这层软件也是最后和硬件计算机一体的,并不单独发布和售卖。

在当时,各大公司都想生产计算机,就连通用电气公司也不例外。所以 1964 年,通用电气公司联合贝尔实验室、MIT 成立了一个项目组,来设计 Multics(多路信息计算系统)。后来通用电气决定退出计算机行业,就没再资助这个研发项目了。1969 年,无所事事的 Multics 项目组成员 K.Thompson,想把一款游戏移植到另一个型号的计算机上,他为了好移植,决定用汇编语言开发一个简化版的 Multics,命名为 Unics(单路信息计算系统)。

1973 年,Dennis Ritchie 和 Thompson 两人一起完善 Unics,但是 Dennis Ritchie 发现 Unics 越来越功能强大并复杂,用汇编语言开发起来不顺手。于是他在 B 语言的基础上开发出 C 语言,然后他们就开始用 C 语言重写了 Unics,并把它命名为 Unix。1974 年,Kenneth Thompson 和 Dennis Ritchie 合写的“The UNIX Time-Sharing System"在 Communication of ACM 上发表,正式向外界披露了 UNIX 系统。从此,软件和硬件第一次分离。

当时人们对专门的独立的软件还没有什么版权意识,所以 1976 年盖茨才写了那封告知计算机业余爱好者的一封信,强调软件也是有版权的。但是 1974 年人们还没有这个意识。于是,Unix 源代码就在各高校传播。1977 年,伯克利大学的 Bill Joy 在取得了 Unix 的核心原始码后,着手修改成适合自己机器的版本, 同时增加了很多功能软件与编译工具,最终将它命名为 Berkeley Software Distribution (简称 BSD)。

1979 年,贝尔实验室的母公司 AT&T 出于商业的考量,将 Unix 的版权收了回去,需要商业授权才能使用。因此,AT&T 在 1979 年发行的第七版 Unix 中,特别提到了 “不可对学生提供源代码”的严格限制。这导致后来学术界自力更生,Andrew Tanenbaum(安德鲁·塔能鲍姆)教授参照 Unix 的功能,写了一个 Minix 系统,用于教授学生操作系统。该系统在 1986 年完成并发布,并于次年发布了相关书籍。Linus Torvalds(林纳斯·托瓦兹)上学时学习 Minix 操作系统,觉得自己也能开发一个操作系统, 于是开始构建 Linux,并于 1991 年开源。

而 BSD 首先开枝散叶。1982 年,斯坦福大学研究生安迪.贝克托森制造出一种图形工作站,于是他和斯科特·马可尼里创立了 Sun 公司。他们用开源的 BSD Unix 3.0 版本改造出了 Sun OS,后来 Sun 的创始人员 Bill Joy,他来自伯克利大学,从 SunOS 5.0 开始,SUN 的操作系统开发取得 AT&T 的商业授权,转向 Unix System V Release 4,并且有了新的名字叫做 Solaris,这是 Sun 公司闭源的商业操作系统。惠普公司也取得 AT&T 的商业授权,研发出 HP 闭源的商业操作系统 HP/UX。IBM 也取得了 AT&T 的商业授权,研发出了 IBM AIX 闭源商业操作系统。

而盖茨 1975 年成立微软软件公司,一开始只是把开发语言移植到个人电脑上,如 BASIC、Fortran 等,这些开发语言早已经存在,只是盖茨他们做了个人电脑版本的移植,然后商用销售。但是盖茨目光确实敏锐,他也看到了操作系统软件的重要性。于是,1980 年,他和 SCO 公司合作也取得 AT&T 的商业授权,研发 Xenix 操作系统用于个人电脑。但是发现 Unix 还是太复杂,不适合当时性能和价格都很 Poor 的个人电脑。所以,当 IBM1981 年要从大型计算机业务延伸到消费者个人电脑业务时,而 IBM 因为不熟悉个人电脑也没有个人电脑操作系统,听说微软搞过这个事于是就找到了微软。其实微软并没有搞成功,但是盖茨机灵也有运气,他到市场上去寻找。1980 年,西雅图电脑产品公司(Seattle Computer Products)的一名 24 岁的程序员蒂姆·帕特森(Tim Paterson)花费了四个月时间编写出了 86-DOS 操作系统。1981 年 7 月,微软以五万美元的代价向西雅图公司购得本产品的全部版权,并将它更名为 MS-DOS。

但其实 86-DOS 是在 CP/M 的基础上改进出来的。CP/M 是加里·基尔代尔在 1974 年发明的,大家想想 1974 年也是 Unix 对外公布的年份。当时他对 Intel 在 1974 年发布的 8008 CPU 很感兴趣,于是 Intel 就送给他一块 8008 芯片。他花了几个月的时间基于 Intel CPU 写了一套 PC 操作系统,但是当时他只是盖茨眼中的计算机业余爱好者而已,展示自己的本领就 OK。所以在计算机俱乐部聚会中他也只是大力宣传自己的软件,开源免费传播。所以五花八门改出来的 CP/M 可以运行在多达 3000 多种型号的计算机上,也支持 Intel 和摩托罗拉芯片。后来基尔代尔看见盖茨卖 MS-DOS 卖的欢快,也自己成立了 Digital Research 公司开始销售 CP/M。在 MS-DOS 没有大行其道之前,CP/M 以及它的各种开源改进版本,就被安装了多达 50 万台电脑上。

提到 Unix、CP/M、微软、SCO 这几样东西和几个公司,我们不得不提到一家公司:Novell。这家公司 1979 年就成立了,瞎折腾。先是自己设计个人电脑,装上 CP/M 操作系统卖(1991 年还买下了 Digital Research)。后来 1981 年看 IBM 的 PC 上有 3Com 网卡和以太网联网功能,于是 Novell 也在自己的电脑上搞网卡并开发以太网联网功能。1982 年 Raymond Noorda 当 CEO 的时候,就大力发展以太网联网功能当主打特色,也是他首先提出:网络操作系统、网络文件服务器、网络目录服务器、网络打印服务器。他还把 Novell 电脑改造成无盘工作站号称网络电脑。所以 Noorda 在业界有个名头叫:以太局域网之父。是他把这些在大型主机才应用的技术引入个人电脑领域、引入局域联网领域。当微软有这些技术的时候,那已经是 1993 年 Windows NT 发布以后,可想 Novell 当年的技术有多么强大。尤其在 1993 年 Novell 还收购了 AT&T 的 Unix 知识产权更加增强自己的技术实力。但是不知道 Noorda 动错了哪根筋,开始和微软全面竞争,1994 年并购了 WordPerct(类似 Word)和 Quatto Pro(类似 EXCEL),而且 1995 年还把好不容易到手的 Unix 知识产权又卖给了 SCO。2003 年又回归初心到网络操作系统,并购了 SUSE。

乔布斯创办的 Apple 公司一向喜欢自己干,从硬件到软件都自己干。后来乔布斯被赶出苹果公司,乔布斯一气之下卖掉苹果股份开始在市场上晃悠,希望寻找机会东山再起。1985 年他遇到了一家创业公司 NexT 正在研发设计强大的图形工作站。乔布斯开始销售 NexT 工作站,他在思考哪儿最需要这种电脑。正好他遇到了卢卡斯,卢卡斯的电影特效制作公司工业光魔正需要这种强大功能的电脑。工业光魔是卢卡斯为了拍摄逼真的科幻电影星球大战而专门成立的电脑特效公司。1984 年,约翰·拉塞特(John Lasseter)离开了工作多年的迪士尼加入了工业光魔,开始制作电脑动画。但这和工业光魔的理念不符合,卢卡斯就想卖掉,于是找到了金主乔布斯。乔布斯 1986 年买下了这个电脑动画部,成立了公司叫皮克斯。乔布斯就用 NexT 的图形工作站制作电影:玩具总动员,并获得多项奥斯卡金奖。1996 年,乔布斯再次被邀请回苹果公司主持大局,乔布斯就把 NexT 公司卖给苹果公司,而 NexT 图形工作站的操作系统也是源于 AT&T 的商业授权的 Unix 版本,从此 NexT 操作系统成为了后来的 Mac OS 和 iOS 的基础。

数据库

1961 年,通用电气的 Charles Bachman ,开发了 IDS(集成数据存储,Integrated Data Store),这是世界上第一个网状数据库,也是世界上第一个数据库。1968 年, IBM 在 System 360 计算机上,开发了 IMS,这是 IBM 的第一代数据库,所以也称 IMS 为 DB1。IMS 是世界上第一个层次数据库。

1970 年,IBM 的研究员 E. F. Codd(埃德加·科德),发表了论文“A Relational Model of Data for Large Shared Data Banks”。该论文提出了关系模型,并于 1981 年获得 ACM 图灵奖。

1974 年,IBM 的 San Jose 实验室,启动了 System R 项目,其目标是论证一个全功能 RDBMS 的可行性。1974 年,IBM 的 Don Chamberlin 和 Ray Boyce,通过 System R 项目的实践,发表了论文"SEQUEL:A Structured English Query Language",提出了 SEQUEL 语言,此即 SQL 语言的原型。该项目结束于 1979 年,它是 SQL 语言的第一次实现,并为 IBM 的二代数据库 DB2,打下了基础。

1973 年,伯克利大学的 Michael Stonebraker 和 EugeneWong,利用 System R 的公开信息,开发了 Ingres(交互式图形和检索系统,INteractive Graphics REtrieval System)并开源。该项目结束于 1985 年,在 Ingres 基础上产生了很多商业数据库软件,包括 Sybase、Microsoft SQL Server、Informix 等。后来 Informix 被 IBM 收购、Sybase 被 SAP 收购成为了 HANA 的基础技术。在 Sybase 独立的时候,微软还和 Sybase 一起合作研发运行在微软操作系统之上的 SQLServer,但是后来微软自己掌握了数据库技术就把 Sybase 一脚踢开。

1977 年 6 月,Larry Ellison 阅读了 Codd 的那篇论文觉得这是个机会,于是与 Bob Miner、Ed Oates 在硅谷共同创办了 SDL(软件开发实验室,Software Development Laboratories)。1978 年发布 Oracle 数据库 1.0 版本,1979 年发布 Oracle 2.0 版本。这是世界上第一个基于 SQL 的商业版 RDBMS。1982 年,公司正式改名为 Oracle。

1990 年,TcX 公司的的客户,要求为报表工具 Unireg 的 API 提供 SQL 支持。TcX 的工程师 Monty 就自己写了一个 SQL 查询引擎。1995 年,Michael Widenius(Monty), David Axmark and Allan Larsson,在瑞典创立了 MySQL AB 公司。1996 年就发布了 MySQL1.0。2001 年,MySQL 集成了 Heikki Tuuri 的存储引擎 InnoDB,这个引擎不仅能持事务处理,并且支持行级锁,从此 MySQL 开始一飞冲天。

中间件

最早的中间件是 1984 年发源于贝尔实验室的 Tuxedo,用于用于控制分布式事务。1992 年被卖给了 Novell。1995 年又被卖给了 BEA,BEA 公司因此成立。

1989 年,欧洲粒子物理实验室(CERN)的蒂姆·伯纳斯·李,他已经使用 Internet 两年时间了,他正在思考如何通过因特网和全球的高能物理研究领域的科学家交流科学论文和数据。于是他尝试开发了一整套程序,包含:HTML 超文本语言、HTML 解析工具网页浏览器、HTTP 网络文本传输协议、HTML Web Server 软件。1993 年,伊利诺斯大学学生马克·安德列森写出了 Mosaic 工具并在高校间传播,1994 年他觉得这是很好的商业机会,就创办了网景公司,从此拉开了世界互联网的大幕。1995 年,微软也眼馋互联网热潮,于是在 Mosaic 的基础上开发出来 IE 浏览器,免费绑定在 Windows95 中,与网景竞争。网景公司为了竞争,于是开发了可以在各个操作系统上都能运行的浏览器版本。

伊利诺伊斯大学还有一伙计算机爱好者,他们组成了一个叫 Apache 的自由软件联盟,开发了 Web Server 并把它开源,这就是 Apache Web Server。有家创业公司叫 WebLogic,在开发商用 Web Server,1996 年被 BEA 收购。

当时的 HTML 都是静态文字,网景公司为了竞争,想做出动态的技术来吸引用户。谁有可以支持各个操作系统并且可以动态执行的技术呢?

1991 年,Sun 公司想开拓智能家电设备市场。于是成立了一个叫做 Green 的小组,他们一开始为了兼容层出不穷的消费家电用 C++写,但是 C++写出的代码太庞大,而且 C++代码由于开发人员水平参差不齐导致有的代码很容易崩溃掉,这在大多数是家庭主妇使用的家用电器上面是不可饶恕的,所以他们开始创造一种叫做 Java 的虚拟机和开发语言,既可以兼容各种层出不穷的消费家电,而且即使是烂程序员写的代码也不容易崩溃,因为有虚拟机的保护。但是这个东西一直未能打开市场,他们面临着被 Sun 公司裁掉的风险。1996 年,互联网如日中天,他们就也想进入互联网市场。于是他们找到网景公司,声称他们满足网景公司的需求,并且愿意免费合作。于是 1997 年,Sum 发布了 JSP 技术在服务器端执行,网景公司的工程师 Brendan Eich 发明了 JavaScript 在浏览器客户端执行。

1997 年,担任 IBM 软件解决方案总经理 Mills 看到了 Sun 公司在互联网的举措,也在思考 IBM 如何进入这个新兴爆发的互联网软件市场。这些创业的互联网公司,用 x86 组装白牌服务器(1998 年 Intel 发布用于服务器的 CPU 至强品牌)、用开源的 Linux 操作系统、用开源的 Apache Web Server、用开源的 Java 开发语言、用开源的 MySQL 数据库。

当时,IBM 决定在开源的 Apache 基础上开发出 IBM 的商用版本,并且也迅速跟进 J2EE 标准,由位于北卡罗来纳州罗利的十几个 IBM 开发人员在 Chris Wicher 和 Sue Wallenborn 的带领下开发,他们的进展非常快,在短短四个月内就开发出了第一个版本,并在三个月后推出了第二个版本,这就是后来的 WebSphere。

1998 年 Sun 想再次提高 JSP 技术的竞争力,而 IBM 也想继续增强 WebSphere 产品商业竞争力,于是两家一拍即合,又拉了一些公司做联盟,联合制定了 J2EE 标准,Weblogic 也迅速跟进。

其实在 1989 年,Sun 和 IBM 就混在一起搞事了。他们当时还组建了一个联盟,叫 OMG,专门针对分布式计算进行标准规范制定。像 UML、CORBA、MOF 元数据规范、XML、BEPL 业务流程描述语言,这些东西都是这个组织搞的。但是 CORBA 被制定的太复杂了,一直难以实现。所以,1998 年他们才又联合搞了 J2EE,其实 J2EE 思想就是来自 CORBA 技术标准族。后来 IBM 在 WebService 技术基础上又搞了 SOA。

编程语言

1953 年,IBM 发布 650 大型主机时,研发出来汇编语言,使人类终于告别了直接用最原始的 01010 编写程序的历史。

一开始计算机很昂贵也很复杂,主要用于科学研究和军事。所以,1957 年,IBM 发明了 Fortran 语言,主要目的用于科学计算。而与此同时,IBM 还发明了 Fortran 编译器,这是世界上第一个编译器。

在 1953 年,安达信会计师事务所就为帮助通用电气公司提高薪资处理效率而安装了美国第一台商用电脑,从此开创了企业信息化的时代。COBOL 开发语言于 1958 年产生。现在,全球很多金融机构,还有很多 COBOL 代码仍然在运行。还有个商业业务逻辑开发语言我们也介绍一下,那就是 SAP 公司的 ABAP。ABAP 最初是用于报表开发的,是随着 1979 年 R/2 套件开发而逐步产生的。你可以这么理解,ABAP 一开始就好像是 EXCEL 表格的函数和 VBA 宏脚本语言。这套语言在 1983 年发布。要知道,VBA 宏脚本语言,是微软 1991 年才发明的,到了 1993 年才随着 Excel5.0 的发布而发布。

还有一个古老的专用开发语言也需要介绍一下,那就是 1958 年产生的人工智能专用开发语言 LISP,而发明人就是曾联合发明 BASIC 编程语言的麦卡锡。

其实还有一个专用的开发语言要说一下,那就是 IBM 为了做数据库处理而发明的 SQL 语言。

1972 年,贝尔实验室的 D.M.Ritchie 为了开发 Unix,特意发明了 C 语言。这是历史上第一个人类可流畅使用的通用编程语言。

纵观整个计算机行当,是 IBM 创造了这个产业,带出了一众 Intel 芯片、3Com 网卡、微软操作系统、Oracle 数据库、Sun 中间件、SAP 应用软件这些小弟。

【END】