历史上的今天:Ruby 语言的诞生

发表时间: 2022-12-21 20:16

整理 | 王启隆

透过「历史上的今天」,从过去看未来,从现在亦可以改变未来。

今天是 2022 年 12 月 21 日,在 55 年前的今天,世界第一例心脏移植者逝世;世界上第一个心脏移植病人路易·华什坎斯基,用一颗在车祸中丧生的 25 岁的妇女的心脏活了 18 天之后在南非的开普敦去世,华什坎斯基术后身体恢复良好,只因肺部出了问题,才夺去了他的生命。回顾科技历史上的 12 月 21 日,这一天还发生过哪些令人印象深刻的关键事件呢?

1849 年 12 月 21 日:机械计算器先驱 George Grant 出生

乔治·格兰特(George Barnard Grant)出生于 1849 年 12 月 21 日,他是一名美国机械工程师、发明家、企业家和植物学家。他以对 19 世纪机械计算器做出重要贡献、开创齿轮制造新技术以及创办几家成功公司而著称,被称为“美国齿轮切削工业之父”。

图源:维基百科

格兰特出生于缅因州加德纳的一个农民家庭,他的父母都是 1630 年代最初来到新英格兰的家庭后裔。他在布里奇顿学院为大学做准备,然后从达特茅斯学院的钱德勒科学学院开始,预备学习了三个学期;1869 年,格兰特转学到哈佛大学的劳伦斯科学学院,1873 年获得学士学位。

在哈佛读书期间,格兰特致力于解决发明机械计算器的问题。在他教授的鼓励下,他着手改进“电脑之父”巴贝奇留下的工作;他在《美国科学与艺术杂志》上发表工作成果,并在学生时期获得了两项专利。

大学毕业后不久,格兰特设计并制造了两台计算机,并于 1876 年在费城举行的百年博览会上展出其中一台,被称为差分引擎,长 8 英尺,高 5 英尺,重 2,000 磅,可能是有史以来最大的计算器。格兰特发明的机器赢得了许多奖项:百年奖章、富兰克林研究所的斯科特奖章和马萨诸塞州力学协会的金奖。

作为计算机工作的产物,格兰特逐渐对齿轮的构造产生了兴趣。齿轮制造这个领域在 19 世纪后期经历了很大的发展和变化,格兰特在这一发展中发挥了主导作用:例如,关于齿轮优化设计的争议已持续多年;在格兰特的时代,最常见的是摆线齿轮,而格兰特认为,渐开线齿轮实际上对大多数应用来说都是优越的。

格兰特在改变行业惯例方面发挥了重要作用,从他之后,世界上生产的大多数齿轮都变成了渐开线的。格兰特一生未婚,他于 1917 年 8 月 16 日逝世,享年 68 岁;在他去世多年后,他创办的几家企业仍在继续经营。

资料来源:维基百科

1918 年 12 月 21 日:编程语言翻译领域先驱 Klaus Samelson 出生

1918 年 12 月 21 日,克劳斯·萨梅尔森(Klaus Samelson)出生于阿尔萨斯-洛林的斯特拉斯堡,他的哥哥是数学家汉斯·萨梅尔森;萨梅尔森是德国数学家、物理学家和计算机先驱,主要从事编程语言翻译工作和研究计算机上顺序公式翻译的 push-pop 堆栈算法。

图源:维基百科

克劳斯·萨梅尔森的童年时期一直住在波兰西南部的一座城市,布雷斯劳;由于二战的影响,他一直到 1946 年才开始上大学,在慕尼黑的路德维希马克西米利安大学学习数学和物理学。毕业后,他曾短暂担任过高中教师。1951 年,他在弗里德里希·波普的指导下完成了物理学哲学博士学位,论文是阿诺德·索末菲(Arnold Sommerfeld)提出的与单极感应相关的量子力学问题。

在上学期间,萨梅尔森对数值分析产生了兴趣,当电气工程师 Hans Piloty 和数学教授 Robert Sauer 开始合作项目时,他加入项目并参与了早期计算机的研究,担任慕尼黑大学数学研究所的助理研究员。这份经历改变了他的科学生涯,他后来的第一篇出版文章便源自 Robert Sauer 的兴趣:处理超音速流动和特征值数值计算的数字计算精度问题。

不久之后,萨梅尔森的影响力开始推动计算机科学和信息学作为一门新的科学学科的发展。他和弗里德里希·鲍尔(Friedrich Bauer)一起研究了编程语言的结构,为它们的翻译和实现开发了高效的算法;这项研究导致了编程语言括号结构的诞生,萨梅尔森也清楚地认识到,这会是计算机系统构建和设计方式的根本性突破。

萨梅尔森还参与了编程和信息学的国际标准,并在 ALGOL 58 和 ALGOL 60 的设计中发挥了关键作用。1958 年,他被美因茨大学聘为数学教授;1963年起,他在慕尼黑工业大学担任教授,在那里,他再次与弗里德里希·鲍尔(Friedrich Bauer)合作,一同开发信息学和计算机科学的大学课程。1971 年创办《信息学报》时,他成为该杂志的编辑。

资料来源:维基百科

1929 年 12 月 21 日:自动编程工具之父 Douglas Ross 出生

道格拉斯·罗斯(Douglas Taylor Ross)出生于 1929 年 12 月 21 日,他是美国的计算机科学家先驱, SofTech 公司的董事长,该公司是一家软件公司,也是 Pascal 编译器的早期供应商;道格拉斯·罗斯因发明术语 CAD(计算机辅助设计)而闻名,被公认为 APT(自动编程工具)之父,而 APT 则是一种推动数控制造的语言。此外,道格拉斯还是 SADT、结构化分析和设计技术的发明者,结构化分析方法的早期开发者。

图源:维基百科

1951 年,罗斯以优异成绩获得欧柏林学院(Oberlin College)数学学士学位,1954 年获得麻省理工学院(MIT)电气工程硕士学位。后来,他开始在麻省理工学院攻读博士学位,但没有完成,因为他是当时的麻省理工学院计算机应用小组负责人,工作压力很大。

在 20 世纪 50 年代,他参加了麻省理工学院的旋风计算机项目。1969 年,罗斯创立了 SofTech 公司,作为给美国国防部 Ada 和 Pascal 语言定制编译器的早期供应商。罗斯曾在麻省理工学院电气工程和计算机科学系讲课,并担任荣誉主席。他从 1969 年到 1975 年担任 SofTech 公司总裁,并最后退休成为董事会主席。

罗斯对麻省理工学院的旋风计算机项目做出了重大贡献,这是世界上第一个研究计算机实时文本和图形的项目。许多人认为道格拉斯·罗斯是自动编程工具之父,而他还发明了计算机辅助设计的术语 CAD。

1954 年左右,罗斯为计算机编写了第一个手绘图形输入程序,他说这是“我写过的为数不多的一次就能成功运行的程序之一”;1960 年代初,市场上首次出现了商用的计算机辅助设计(CAD)系统。其中第一批被大型航空,工程和信息技术公司使用,例如洛克希德,通用汽车和 IBM。

到了 90 年代,实体建模的概念开始普及,3D CAD 应运而生;3D 建模是一种完全不同的思维和工作方式,因此每个人都需要花费更长的时间来适应它;随着现在虚拟现实(VR)和增强现实(AR)市场的显着增长,CAD 软件行业也进入了一个全新的领域,蕴含着无限的未来。

资料来源:维基百科

1995 年 12 月 21 日:松本行弘发布 Ruby 0.95

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,在 20 世纪 90 年代中期由日本计算机科学家松本行弘(Matz)设计并开发。它借鉴和吸收了 Perl、Smalltalk、Eiffel、Ada 以及 Lisp 等语言的特色;松本行弘以简洁性、扩展性和稳定性为原则设计了 Ruby,他期待使用 Ruby 的程序员都能由衷地感到快乐和高效。

松本行弘于 1993 年 2 月 24 日开始编写 Ruby,直至 1995 年 12 月 21 日才正式公开发布于新闻组。Ruby 这一名字灵感来源于 Perl,因为 Perl 的发音与 6 月的诞生石 Pearl(珍珠)相同,Ruby 选择以 7 月的诞生石 Ruby(红宝石)命名。

图源:维基百科

Ruby 相较之下比其他类似的编程语言(如 Perl 或 Python)年轻,又因为 Ruby 是日本人发明的,所以早期的非日文资料和程序都比较贫乏,如今在网上仍然可以找到早期对 Ruby 的资料太少之类的批评。大约在 2000 年,Ruby 开始进入美国,英文的资料才开始发展。

2004 年,Rails 框架诞生,使 Ruby 更加广为人知,随后,Ruby 于 2006 年成为 TIOBE 获选为年度编程语言。有趣的是,Ruby 事实上在中国早期的游戏制作者社区广为所知,因为知名的游戏制作软件 RPG Maker 便是以 Ruby 为基础进行游戏编程的。

编程语言是在不断试错的过程中发展起来的。有很多编程语言已经消亡,仅仅在历史中留下了它们的名字,但其中所包含的思想,却被后来的语言以不同的形式吸取和借鉴。
——松本行弘

Ruby 的设计理念是减少编程时候的不必要的琐碎时间。令编写程序的人高兴,是设计 Ruby 语言的松本行弘的一个首要的考虑;其次是良好的界面设计。

他强调系统设计必须强调人性化,而不是一味从机器的角度设想;遵循着最小惊讶原则,Ruby 语言通常非常直观,按照程序员认为它应该的方式运行。松本行弘还认为 Ruby > (Smalltalk + Perl) / 2,表示 Ruby 是一个语法像 Smalltalk 一样完全面向对象、脚本执行、又有 Perl 强大的文字处理功能的编程语言。

关于 Ruby 和 Perl 之间的讨论从未停止过。

CPAN 上排名第一名,同时也是 Perl 6 的开发者的唐凤(Autrijus / Audrey)便曾经说过:“Ruby 就是‘没有到处打广告的 Perl 6’。”

而松本行弘在接受访问时,提到“Ruby 借用了很多Perl 的东西……,Python 远比 Perl 要少……”、“我认为 Ruby 这个名字作为 Perl 之后的一门语言的名字真是再恰当不过了。”

甚至 Perl 之父拉里·沃尔(Larry Wall)都说:“很多方面上我还是很喜欢 Ruby 的,这是因为那些部分是从 Perl 借过去的。:-)”、“我还喜欢 Ruby 的 C<*>一元星号操作符,所以我把它加到了 Perl 6 里面。”

随着 Ruby 语言的发展,由 Ruby 语言本身还发展出了 JRuby(Java 平台)、IronRuby(.NET 平台)等其他平台的 Ruby 语言替代品。你如何看待 Ruby 语言?欢迎在评论区分享你的真知灼见。

资料来源:维基百科

2012 年 12 月 21 日:玛雅日历预言“世界末日”

2012 年现象是指一系列认为 2012 年 12 月 21 日左右世界出现灾难性或变革性事件的末世论观点。这一天在中美洲长纪历中被认为是 5126 年纪年周期的最后一天,受玛雅文明影响的国家(墨西哥、危地马拉、洪都拉斯和厄瓜多尔)在这一天举行活动。

玛雅文明本身属于是南美洲古代印第安人文明,美洲古代印第安文明的杰出代表,以印第安玛雅人而得名;玛雅文明约形成于公元前 2500 年,公元前 400 年左右建立早期奴隶制国家,公元 3~9 世纪为繁盛期,15 世纪衰落,最后为西班牙殖民者摧毁,此后长期湮没在热带丛林中。

流传的末日说认为,在 2012 年 12 月 21 日,太阳将到达所谓的银河系“银道(Galactic equator)”,这一特殊的事件据说每隔 25800 年才会发生一次。然而实际情况是,银河系并没有确切的银道,它不是一条线,并且过去几年的冬至日太阳就在银道上,今后几年仍将如此。

图源:维基百科

2012 现象被众多媒体探讨或提及,几部提到 2012 年的电视纪录片及当红虚构作品都认为 12 月 21 日在灾难性事件发生的日子;受 2012 世界末日启发的 2009 年灾难片《2012》在预热宣传活动中采用秘密行销策略,借助虚构组织“人类永续研究所”(Institue for Human Continuity)的电视台和网站号召大家准备应对世界末日。

相关宣传内容没有提及电影,导致许多观众信以为真,惊慌之下联络天文学家;即便宣传活动遭到猛烈批评,电影仍是当年最成功的电影,全球票房近 7.7 亿美元。

在 2012 过去之后,但许多作家仍继续发掘相关题材,其中葛瑞姆·汉卡克在 2015 年著作《诸神魔法师》写道:“就这样看来,玛雅人从来没说过什么世界末日,而是说这是一个时代——大改革和世界重生的时代结束,之后新的大循环或时代会开启。”

随着近几年人工智能技术的崛起,关于世界末日的讨论再次兴起,物理学家斯蒂芬·霍金、微软创始人比尔·盖茨和 SpaceX 创始人埃隆·马斯克都回应过这些担忧,霍金将这种人工智能叛变理论推向了现实,认为其可能“预示着人类的灭亡”。

当然,相信在大多数情况下,无论人类文明以何种方式结束,都不会对这颗已经存在了几亿年的地球产生太多影响;剑桥大学的“剑桥计划”曾经指出,对人类的“最大威胁”是人为的:它们是人工智能、全球暖化、核子战争和有害生物技术。倘若世界末日来得如此之快,你会在那一天做些什么呢?欢迎参与本期投票,在评论区分享你的真知灼见。

【欢迎投稿】以史为镜,可以知兴替。计算机科学发展至今,有许多至关重要的事件、人物,欢迎所有朋友一起共建「历史上的今天」,投稿邮箱:tangxy@csdn.net 。