昨天是世界第一位程序员的纪念日,有门开发语言用她的名字命名

简介:

纽约时报畅销书作家Jennifer Chiaverini将于12月18日晚七点在Wellesley Books书店现场推广她的新小说《Enchantress of Numbers》。

昨天是世界第一位程序员的纪念日,有门开发语言用她的名字命名

这一本迷人的历史小说讲述了世界上第一位计算机程序员Ada Lovelace的一生。2009年,伦敦非营利组织Open Rights Group前执行董事Suw Charman-Anderson为了纪念这位伟大的女性,将每年10月的第二个星期二定为“Ada Lovelace Day”,这是一个国际性的节日,以庆祝女性在STEM【即Science“科学”、Technology(技术)、Engineering(工程)和Mathematics(数学)】领域做出的贡献。

12月10日,正是Ada Lovelace的诞辰,因此美国传媒圈最近再一次提起Ada Lovelace,我们一起来看看她的故事。

Ada Lovelace,洛夫莱斯伯爵夫人奥古斯塔·埃达·金·诺尔(Augusta Ada King-Noel, Countess of Lovelace,1815年12月10日-1852年11月27日),原姓拜伦(Byron),是一位英国数学家与作家,代表作是她为英国数学家查尔斯·巴贝奇(Charles Babbage)的分析机——机械式通用电脑——所写的注记。

昨天是世界第一位程序员的纪念日,有门开发语言用她的名字命名

Ada的一生短暂而辉煌。她出生于一个著名的贵族家庭,最初她因英国浪漫主义诗人拜伦勋爵(Lord Byron)之女而出名,然而,当Ada还是婴儿时,拜伦勋爵就从她们的生活中消失了。Ada的母亲Annabella担心她会步入父亲的后尘,也变成富于幻想的浪漫主义者,因此禁止她读拜伦勋爵的诗歌,并且坚持用数学包围这个孩子。

这种做法奏效了。Ada埋首书堆之中长大,学习了代数和几何,而且表现出对机器与日俱增的迷恋。在她17岁的时候,她和母亲参加了一次活动,在那次活动上,Ada见到了计算机鼻祖查尔斯·巴贝奇教授。

巴贝奇当时正在展示他的“差分机”原型——这个原型的设计是根据公式计算值,减少创建表格所需要的手工劳动。“差分机”是“分析机”的一个简单的初期形式——分析机是早期计算机的前身,能提高乘法速度和改进对数表等数字表的精确度。

这个想法激发了Ada对机器的迷恋,她开始了解和差分机有关的一切。

今天如果有人看到“分析机”,可能会认为它是某个奇怪的汽车上的机械系统的一部分——或者也许是某个不起眼的电报机或者某种古怪的乐器的一个部件。我们可能不会意识到,这个有很多针和齿轮的机器,是世界上第一台计算机。

昨天是世界第一位程序员的纪念日,有门开发语言用她的名字命名

图:Charles Babbage在伦敦科学博物馆展出的部分分析机模型

Ada在和巴贝奇教授讨论分析机的过程中,预言了通用计算机的可能,她提议,数字和其他符号(如字母)都可以“编码”成数字数据,机器可以处理它们。

1843年,Ada翻译了一篇关于巴贝奇的机器的法语论文,并加上了自己的“注记”,注记篇幅几乎是论文本身的两倍。其中包括对机器工作情况的详细描述,包括如何使用打孔纸卡来调整机器的设置。她甚至认为,机器今后有可能被用来创作复杂的音乐、制图和在科学研究中运用,这在当时确是十分大胆的预见。以现在的观点看,Ada首先为计算拟定了“算法”,然后写作了一份“程序设计流程图”,说明计算器如何能够计算出一系列经常出现在高等算术中的数字,即伯努利数(Bernoulli numbers)。这份珍贵的规划,被人们视为“第一件计算机程序”,它和现代计算机很类似,例如它的“工厂”(mill)——就非常类似于我们现在称之为中央处理器的部件。(由于巴贝奇晚年因喉疾几乎不能说话,介绍分析机的文字主要由Ada替他完成。)

也因此,Ada被视为“第一位给计算机写程序的人”,在现在成为女性科学家的一个鼓舞人心的榜样。为了纪念Ada对现代电脑与软件工程所产生的重大影响,美国国防部耗费巨资、历时近20年研制高级程序语言,命名为Ada语言(来源:http://www.computinghistory.org.uk/det/9508/The-ADA-Programming-Language/)。

在Ada的一生当中,有好几位导师,其中包括数学家奥古斯都·德·摩根(Augustus De Morgan),后者在1840年和1841年通过信件辅导她,填补了她数学知识上的空缺。

这些交流信件为2017年8月出版的《数学史》(Historia Mathematica)上的一篇论文提供了材料,为Ada的数学实力提供了证据,并且反驳了一些历史学家声称她的故事可能被过度夸大的说法——这些历史学家认为她没有足够的数学知识写出在她关于分析机的论文中的“注记”——这是她最广为人知的成就。

弗吉尼亚州伦道夫梅肯学院(Randolph–Macon College)的数学教授Adrian Rice及其在牛津大学的同事去年在牛津大学的博德莱恩图书馆(Bodleian Library)花了很多时间,仔细阅读了Ada和摩根之间的往来信件。他们对她在数学方面的实力做出了几个结论,例如,她的确拥有足够的数学知识,她倾向于对观念进行有洞察力的观察,而且她对于想法的预测最终被证明是正确的。

Rice补充表示,Ada还是世界上第一位“调试员”:例如,她发现了巴贝奇在计算中犯下的一个大错误,反映出她在同摩根通信过程中对数学问题提出问题并发现错误的态度。

Ada 36岁那年因癌症去世,但科学界却一直保留了她的遗产。1862年,在她去世十年后,《科学美国人》(Scientific American)刊登了伦敦《泰晤士报》(Times of London)的一个摘录,描述了一个机器展览,其中有一个可能是一个建造了一半的分析机。它写道:“这是巴贝奇先生的伟大的计算机,它可以进行四舍五入,并计算高达七位数的对数。正是由于已故的Lovelace女士——拜伦勋爵的女儿——记载的这项发明,让斯德哥尔摩的Scheutz先生对此进行了改进,让该机器不仅能够计算表格,还能够打印结果。”

Ada已经逐渐成为所有渴望加入科学领域的女性一个开拓性的符号。而每年十月的第二个星期二,不仅是对于她的缅怀,也是对于历史上所有被遗忘或者被忽视的女性——甚至是从未被发现的女性所做出的贡献的承认。

虽然Ada经常被历史书忽视,可是她却具有传奇式标志人物所有的一切。当她后来被很多人认为是世界上第一个计算机程序的时候,展现出“几乎可怕的能量和力量”——她既是一位知识分子,也是那个时代最伟大的一位名人的女儿(而且这位名人还丑闻缠身),她的一生充满了矛盾和悲剧。

由于种种原因,《Enchantress of Numbers》一书的笔锋有一些狄更斯的感觉。其中的故事可能或大或小,但人物和他们的品质是巨大的。正如荣格的理论所指出的那样,人们做什么就是什么,而有些人是悲伤的,有些人是善良的,有些人是苦涩的,还有一些人则是闪闪发光的。许多现代作家因为迷恋细微的差别而牺牲了现实主义和人文主义:英雄必须是反英雄,恶棍的一切都是灰色的,恶棍的恶行必须有一个悲伤而有条理的解释。但作家Chiaverini并不是这样。

昨天是世界第一位程序员的纪念日,有门开发语言用她的名字命名

《Enchantress of Numbers》作者Jennifer Chiaverini

Ada在某些方面可能有缺陷,但是作者执迷不悔地用令人耳目一新的方式描述她,将她描述成一个非常好、非常才华横溢、非常有创意、而且最终也非常可爱的人。从这个角度看,Ada就像是大卫·科波菲尔一样——如果他帮助发明了人类文明历史上最伟大的思想机器的话。《Enchantress of Numbers》的作者Chiaverini如同《大卫·科波菲尔》(译注:狄更斯名著)一样,采用了作者隐身、第一人称叙述视角,当你阅读时,就像Ada Lovelace将故事娓娓道来。







原文出处:科技行者
转载请与作者联系,同时请务必标明文章原始出处和原文链接及本声明。
目录
相关文章
|
XML Web App开发 存储
这个文件下载问题难住了我至少三位同事
这个文件下载问题难住了我至少三位同事
|
6月前
|
设计模式 算法 Java
各种奇葩变量名合集
一个好的变量名能让读代码的人(包括写的人),身心舒畅,但一个“奇葩”的变量名可能会逼疯一个程序员。今天是各种各样的奇葩变量名大赏!!!!!!在编程过程中,好的变量命名是非常重要的。一个好的变量名能够清晰地表达变量的含义和作用,从而提高代码的可读性和可维护性。然而,有些时候,由于种种原因,开发者会使用一些非常奇特或者奇葩的变量名。本文将总结一些常见的奇葩变量名,并分析其原因和可能的改进方法。
118 1
|
12月前
|
前端开发 程序员 PHP
程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器
程序员还在为变量取名苦恼,那是因为你不知道,这个变量命名神器
184 0
|
数据采集 机器人 数据挖掘
【我问 Crossin】Crossin 这个名字是什么意思?
git init 是以本地当前的目录来创建一个 git 仓库,它是一个本地的操作。比如你在文件夹 project 里有一些代码文件,通过 git init 创建仓库后,可以将这些文件加入 git 仓库管理。但要提交到远程仓库或 github 上的话,还需要再指定远程仓库的地址。
|
存储 编译器 C++
开心档之开发入门网-C++ 变量类型
开心档之开发入门网-C++ 变量类型
|
设计模式 Web App开发 JavaScript
一份来自于全球的前端面试题清单,看看老外喜欢考哪些题(部分有答案)(二)
 方括号中的蓝色标题是题目的出处,有些题目在原址内包含答案。搜集的大部分外国前端面试题没有做翻译,单词并不难,大家应该看得懂。题目旁边的方括号内, 简单记录了与此题相关的知识点。总共大概一千多道,包含国内的题目,如有错误,欢迎指正。有些原链可能已无法打开,有些可能需要代理才能查看。
|
设计模式 移动开发 缓存
一份来自于全球的前端面试题清单,看看老外喜欢考哪些题(部分有答案)(一)
  方括号中的蓝色标题是题目的出处,有些题目在原址内包含答案。搜集的大部分外国前端面试题没有做翻译,单词并不难,大家应该看得懂。题目旁边的方括号内, 简单记录了与此题相关的知识点。总共大概一千多道,包含国内的题目,如有错误,欢迎指正。有些原链可能已无法打开,有些可能需要代理才能查看。
|
设计模式 前端开发 JavaScript
一份来自于全球的前端面试题清单,看看老外喜欢考哪些题(部分有答案)(三)
方括号中的蓝色标题是题目的出处,有些题目在原址内包含答案。搜集的大部分外国前端面试题没有做翻译,单词并不难,大家应该看得懂。题目旁边的方括号内, 简单记录了与此题相关的知识点。总共大概一千多道,包含国内的题目,如有错误,欢迎指正。有些原链可能已无法打开,有些可能需要代理才能查看。
|
存储 监控 前端开发
作为前端程序员:你必须知道的常用英语词汇!!全是干货!!!
作为前端程序员:你必须知道的常用英语词汇!!全是干货!!!
310 0
|
程序员 Java
程序员面试时用中文命名写白板代码的好处
在程序员面试时的白板写代码这关用中文命名对双方的好处
698 0