整理 | 王启隆
透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。
今天是 2023 年 2 月 14 日,在 1819 年的今天,打字机和第一台 QWERTY 布局键盘的发明者克里斯托弗·肖尔斯(Christopher Sholes)出生。1860 年,还是一名报社编辑的肖尔斯开始试制一台能自动给书编页码的机器,不久后他便制作出了一架木制的打字机模型;肖尔斯制作的模型和后世流行的打字机基本一样,拥有打完字后能自动移位的装置,出字也很清晰。在打字机问世之后,肖尔斯便致力于改进打字机,并研发了我们如今熟悉的 QWERTY 键盘。回顾计算机历史上的 2 月 14 日,这一天还发生过哪些改变世界的关键事件呢?
1924 年 2 月 14 日:国际商业机器有限公司(IBM)成立
19 世纪末,一位叫赫尔曼·何乐礼(Herman Hollerith)的美国人发明了打孔卡片制表机,被广泛认为是现代机械数据处理之父,开创了自动数据处理的时代。随后到了 1896 年,何乐礼的机器被迅速用于 1890 年美国人口普查,他也在名声大振后开始自己经营业务,创立了制表机器公司(Tabulating Machine Company),向全世界的人口统计局推售自己的产品。
从这段时期开始,美国出现了四家实力强盛的公司:何乐礼的制表机器公司;世界上第一家时钟制造商邦迪制造公司;1900 年创建的国际时代唱片公司;以及 1901 年创建于俄亥俄州代顿的美国计算制表公司。1911 年,一位叫查理斯·弗林特(Charles Flint)的金融家将这四家公司合并为一家新的控股公司,命名为计算制表记录公司(Computing Tabulating Recording Company),简称 CTR;弗林特召集了这四家公司的创始人,提出兼并,并在合并后的 CTR 公司任职直到 1930 年退休。
在 CTR 诞生之后,这家由四个大企业合并的公司理所当然地遭遇了一大问题:多元化业务难以管理;弗林特对此手足无措,于是在危急之际,他向一位曾在国家收银机公司当过高管的名人求助。而这位“救星”,就是后来 IBM 的真正创始人——托马斯·沃森(Thomas. J. Watson)。
托马斯·沃森年轻时先后从事过卖钢琴、猪肉与证券的工作,原本计划要存钱开肉店,但却遭到证券营业员所欺骗,而损失所有金钱。随后,沃森苦苦求职,有幸得到了国家收银机公司(National cash register,NCR)业务员的工作。学习能力强的沃森迅速成为了东部最成功的推销员,每周能赚 100 美元。时运不济,到了 1912 年,这家公司因违反《谢尔曼反托拉斯法》而被判有罪;沃森的高效销售手法也触犯了法律,导致他被判刑一年。后来,案件因证据不足被撤销,沃森也离开了公司。
此时的沃森已经 40 岁,离开了 NCR 公司的他,还有着新婚不久的妻子和一个嗷嗷待哺的儿子需要照顾;但沃森没有放弃,他选择留在了纽约继续闯荡,这位天才销售员的名声早已在华尔街流传已久,最终传到了华尔街的大金融家耳中——也就是查理斯·弗林特。弗林特对沃森的才干早有所闻,旋即聘任他为 CTR 公司的经理。
曾留过案底的沃森自然不受 CTR 的其他员工欢迎,从 1914 年到 1924 年,沃森一直忍辱负重,发挥自身的销售才能和耐心,用自己的成绩说服众人对他的歧视。沃森借了许多钱发展公司,采用将机器出租的新销售手法,8自己也借了很多钱买公司的股票;最终,沃森等来了一次绝妙的契机:第一次世界大战结束时,制表机需求量激增;几乎每一家大保险公司和铁路公司都用上了计算制表记录公司生产的霍勒利斯制表机,政府部门也采用了。
沃森适时地推出新型的打印——制表组合机,更是受到广大客户的欢迎,产品供不应求。1919 年,公司的销售额高达 1300 万美元,利润也升至 210 万美元。1924 年 2 月,已经升至公司总经理的沃森决定将公司更名为国际商用机器公司,简称 IBM。这时的沃森刚满 50 岁,从此他抹去了同任何人有关联的最后痕迹,开始了自己与 IBM 融为一体的后 32 年生涯。
一战彻底结束后,计算机市场初露端倪,IBM 率先攻占计算机市场,推出了第一台电子计算器。1952 年,IBM 推出了一台商业存储程序计算机,即基于真空管的 IBM 701;同样是在这一年,托马斯·沃森公司掌舵近 40 年后卸任,他的儿子小托马斯·沃森被任命为总裁。1956 年,老沃森以 82 岁高龄逝世。他的儿子小沃森成功地将 IBM 转型为计算机公司,赢得了信息技术业霸主的地位。
过去的九十多年里,世界经济不断发展,现代科学日新月异,IBM 始终以超前的技术、出色的管理和独树一帜的产品领导着全球信息工业的发展,保证了世界范围内几乎所有行业用户对信息处理的全方位需求。早在 1969 年,阿波罗宇宙飞船载着三名宇航员,肩负着人类的使命,首次登上了月球;1981 年哥伦比亚号航天飞机又成功地飞上了太空。这两次历史性的太空飞行都凝聚着 IBM 无与伦比的智慧。截至 2020 年,IBM 连续 28 年保持着企业每年产生的美国专利最多的记录,在材料、化学、物理等科学领域皆有很高的成就。
而早在 1934 年民国时代,IBM 就为北京协和医院安装了第一台商业机械。1979 年,在中断联系近 30 年之后,IBM 在中国再次投资,在沈阳鼓风机厂安装了第一台 IBM 中型计算机,开始了在华商务。80 年代中后期,IBM 先后在北京、上海设立了办事处,扩及到 33 个城市,产品进入中国市场金融、电信、冶金、石化、交通、商品流通等领域。你曾经用过 IBM 公司生产的电脑或其他产品吗?欢迎在评论区分享你关于 IBM 的那些旧日回忆。
资料来源:维基百科、百度百科
1943 年 2 月 14 日:软件开发学先驱 Larry Constantine 出生
拉里·康斯坦丁(Larry Constantine)出生于 1943 年 2 月 14 日,他是美国软件工程师,是葡萄牙马德拉大学精确科学与工程中心教授,被认为是计算领域的先驱之一。他贡献了许多概念和技术,为软件工程和应用程序设计与开发的现代实践奠定了基础。康斯坦丁在明尼苏达州的安诺卡长大,1961 年毕业于安诺卡高中,上学时积极参加辩论、戏剧表演和其他课外活动。康斯坦丁于 1967 年获得了麻省理工学院斯隆管理学院的管理学学士学位,专攻信息系统和心理学。
毕业后,1963 年,康斯坦丁在麻省理工学院核科学实验室开始了他的职业生涯,担任技术助理兼程序员。从 1966 年开始,他开始担任信息与系统研究所的总裁;1967 年,他成为了宾夕法尼亚大学沃顿商学院的研究生导师,并在 1968 年加入了 IBM。随后在 2006 年,康斯坦丁领导了葡萄牙马德拉大学的软件工程实验室,致力于研究现代软件工程的人性方面。
康斯坦丁专攻软件开发的人性化方面,他出版的作品包括与 Ed Yourdon 合着的经典著作《Structured Design》以及与 Lucy Lockwood 合着的屡获殊荣的《Software for Use》。他对软件开发实践的贡献始于 1968 年,在“模块化编程”概念方面贡献了开创性工作。康斯坦丁提出了内聚(模块内部内容相关的程度)和耦合(模块依赖于其他模块的程度)的概念,这两个概念在软件工程的发展中具有重大的影响力,彻底改变了结构化设计这一学科。康斯坦丁还开发了将人机交互设计与软件工程相结合的方法,如今他仍活跃于计算机教育界,在世界各地的许多人机界面课程和大学中任教。
资料来源:维基百科
1946 年 2 月 14 日:世界上第一台通用计算机 ENIAC 诞生
第二次世界大战期间,美国军方要求宾州大学的约翰·莫克利(John Mauchly)博士和他的学生埃克特(Eckert)设计以真空管取代继电器的“电子化”电脑,目的是用来计算炮弹弹道。这部机器使用了 18800 个真空管,长 50 英尺,宽 30 英尺, 占地 1500 平方英尺,重达 30 吨;建造合同在 1943 年 6 月 5 日签订,实际的建造在 7 月以“PX 项目”为代号秘密开始,由宾夕法尼亚大学穆尔电气工程学院进行。
建造完成的机器在 1946 年 2 月 14 日公布,并于次日在宾夕法尼亚大学正式投入使用。建造这台机器花费了将近五十万美元,最终在 1946 年 11 月 9 日关闭,并在 1947 年转移到了马里兰州的阿伯丁试验场。这台机器,便是大名鼎鼎的第一台通用计算机——ENIAC。
ENIAC 的设计者约翰·莫克利曾经拥有这台机器的专利,到了 1973 年,经过法院宣判,因莫克利对于 ENIAC 的设计思想部分来源于约翰·阿塔纳索夫和克利福德·贝里设计的 ABC 计算机,所以专利被认定为无效。然而,公众仍普遍将 ENIAC 认定为世界上第一台电子计算机,将莫克利认定为电子计算机之父。
为此,20 世纪 90 年代初,时年 87 岁的 ABC 计算机发明者阿塔纳索夫写信给当时的美国总统老布什,希望公众能承认他自己才是电子计算机之父。于是,老布什向他颁发了一个美国国家工艺技术金质奖章,以表彰他发明了世界上第一台电子数字计算机。
1996 年 2 月 14 日,在世界上第一台电子计算机问世 50 周年之际,美国副总统戈尔曾再次启动这台计算机,以纪念信息时代的到来。同年,为纪念 ENIAC 成立 50 周年,宾夕法尼亚大学赞助了一个名为“ ENIAC-on-a-Chip ”的项目,制造了一个尺寸为 7.44 mm x 5.29 mm 的非常小的硅计算机芯片,性能和 ENIAC 相当。
1987 年,ENIAC 被评为 IEEE 里程碑。1997 年,负责 ENIAC 大部分编程的六位女性入选了国际科技女性名人堂,在当年,这六位女性都没有被邀请参加正式的奉献仪式,也没有人被邀请参加随后举行的庆祝晚宴。从 ENIAC 诞生至今已过去 76 年了,在这期间,计算机以惊人的速度发展着,首先是晶体管取代了电子管,继而是微电子技术的发展,使得摩尔定律所描述的夸张速度都赶不上科技的发展速度。ENIAC 的诞生为人类开辟了一个崭新的信息时代,使得人类社会发生了巨大的变化。
资料来源:维基百科、百度百科
1994 年 2 月 14 日:Linux 的文件系统标准 FSSTND 问世
文件系统层次结构标准(Filesystem Hierarchy Standard,FHS)定义了 Linux 操作系统中的主要目录及目录内容,初始版本发布于 1994 年 2 月 14 日,由 Linux 基金会维护。FHS 又可以写作 FSSTND,也就是 Filesystem Standard 的缩写。在 1996 年初, 开发一个更加全面的、不仅解决 Linux,而且解决其他类 Unix 系统目录层次结构问题的 FSSTND 的计划在 BSD 开发社区成员的协助下正式被采纳。因此,计划重点解决在类 Unix 系统上普遍存在的问题。 为了适应标准范围的扩充,标准的名称修改为文件系统层次结构标准。
多数 Linux 发行版遵从 FHS 标准并且声明其自身政策以维护 FHS 的要求。但截至 2009 年,包括自由标准小组成员参与开发的版本在内的绝大多数发行版,并不完全执行建议的标准。当 FHS 创建之时,其他的 UNIX 和类 Unix 操作系统其实早已有了自己的标准,而现在的 Linux 发行版皆包含一个 /sys 目录作为虚拟文件系统它存储且允许修改连接到系统的设备,然而许多传统 UNIX 和类 Unix 操作系统使用 /sys 作为内核代码树的符号链接。而一些 Linux 系统,如 GoboLinux 和 Syllable Server 则使用了和 FHS 完全不同的文件系统层次组织方法。如今,最新版本的 FHS 是 3.0,于 2015 年 6 月 3 日发布。
资料来源:维基百科
2012 年 2 月 14 日:编程语言 Julia 公开发布
我们想要一种自由开源的编程语言,它同时拥有 C 的速度和 Ruby 的动态性;它要具备同像性,拥有 Lisp 那样的宏,但数学符号要像 MATLAB 一样突出又眼熟;它的通用性直逼 Python,统计功能有如 R,字符串处理仿佛 Perl,线性代数近似 MATLAB,对程序的黏合性堪比 Shell……它既简单易学,又让最严谨的黑客无可挑剔……
——Julia 的设计者们
从 2009 年中开始,一群拥有各种语言丰富编程经验的 Matlab 高级用户,对现有的科学计算编程工具感到不满,设计了 Julia 编程语言。Julia 是一种通用的高级动态编程语言,最初是为了满足高性能数值分析和计算科学的需要而设计的,不需要解释器,速度快;Julia 也可用于客户端和服务器的 Web 用途、低级系统编程或用作规约语言。Julia 的共同设计者为:杰夫·贝赞森(Jeff Bezanson)、斯蒂芬·卡宾斯基(Stefan Karpinski)、维拉·沙阿(Viral B. Shah)和艾伦·埃德尔曼(Alan Edelman)。2012 年 2 月 14 日,Julia 正式发布。
Julia 设计的独特之处包括,参数多态的类型系统,完全动态语言中的类型,以及它多分派的核心编程范型。它允许并发、并行和分布式计算,并直接调用 C 和 Fortran 库而不使用粘合代码。Julia 拥有垃圾回收机制,使用及早求值,包含了用于浮点计算、线性代数、随机数生成和正则表达式匹配的高效库。有许多库可以使用,其中一些(如用于快速傅里叶变换的库)已经预先捆绑在 Julia 里。
自 2012 年推出以来,Julia 社区不断发展壮大,截至 2020 年,Julia 已被 10000 多家公司的用户下载,并在 1500 多所大学中投入使用。截至 2022 年 1 月,Julia 下载量超过 3500 万次,Julia 包生态系统拥有超过 1180 万行代码(包括文档和测试)。JuliaCon 学术会议自 2014 年以来每年举行一次,2020 年的会议迎来了超过 28900 名独立观众,2021 年的会议则打破了之前的所有纪录,在 YouTube 上免费提供 300 多份会议演示文稿,会议期间有 43000 名独立观众。
以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物。在《新程序员:我们的技术时代,我们的程序人生》中,来自四十余位技术人跨越半个世纪,用代码敲出一个个真实的程序人生故事!
扫描或点击《新程序员:我们的技术时代,我们的程序人生》订阅!