导读:世界上第一位程序员,当然也是世界上第一位女程序员——Ada。
这位女神级的神人,全名是洛夫莱斯伯爵夫人奥古斯塔·埃达·金·诺尔(Augusta Ada King-Noel, Countess of Lovelace)。在成为伯爵夫人之前,她原生家庭的姓氏更有名一些——拜伦(Byron)。
▲Ada的画像,大约完成于1840年,这也是当今网络中Ada最常见的形象,作者:Alfred Edward Chalon别怀疑,Ada就是19世纪初期英国伟大的浪漫主义诗人乔治·戈登·拜伦(George Gordon Byron)的亲女儿。怪不得如今很多程序员都能写出诗意的代码,原来程序员和诗人自古以来就是一家。著有《恰尔德·哈罗尔德游记》《唐璜》等佳作的拜伦勋爵,也算是英国文学史上响当当的大佬。你或许读过拜伦的诗,但不知道你有没有读过这一句:拜伦一点没夸张,Ada是拜伦跟他夫人安娜贝拉(Anne Isabella Noel Byron)唯一的孩子。说得更明白一点就是,Ada是拜伦唯一的婚生子女,拜伦的其他孩子都是私生。Ada出生于1815年12月10日,射手座。她出生前,拜伦夫妇的关系已经紧张。Ada刚满月不久,安娜贝拉被拜伦赶回了娘家,同时也带走了Ada。此后,拜伦已经跟女儿Ada没有什么实质上的关系,但距离产生了美,Ada一直想念着父亲。与拜伦分居后,安娜贝拉实际上把女儿交给了自己的母亲,也就是Ada的姥姥来带。安娜贝拉对Ada却有一种另类的关爱——她怕Ada遗传了拜伦的基因,在成长中变得像拜伦一样“道德败坏”,就派出一个闺蜜团去监视Ada。Ada很讨厌这些监视她的人,认为她们在母亲面前说自己坏话,把她们称为“冤魂”(Furies,原意是复仇女神)。不过,安娜贝拉的这种另类关爱也为Ada成为世界上第一位程序员埋下了伏笔。安娜贝拉害怕Ada像拜伦那样成为一个“疯狂”的诗人,就创造各种机会让Ada学习数学,培养逻辑和理性思维。1824年,Ada只有8岁的时候,“疯狂”的拜伦病逝于希腊独立战争的战场上。很有可能的是,Ada直到父亲去世,也不知道父亲的样子,父亲的形象只存在于她的想象中。因为直到她20岁生日时,安娜贝拉才给她看一幅家庭画像,那上面有她父亲。▲7岁的Ada,作者:Alfred d'Orsay
Ada的思维方式,似乎是综合了父亲的诗意和数学教育的理性。她想飞,这很疯狂;但她不是想想而已,她真的设计了一对翅膀,这很有数学家的风范。那是在1828年2月,Ada 12岁,她研究鸟类生理解剖学,分析、计算翅膀和身体的正确比例。她找来各种材料做实验:纸、油布、缆线、羽毛……她甚至还有后续的步骤和计划:她列举出飞行需要的其他器材设备,比如罗盘;在那个蒸汽时代,她还要把蒸汽整合进她发明的“飞行艺术学”。但在一年多以后,1829年6月,Ada却因麻疹发作全身瘫痪,在床上休养了将近一年。直到1831年,她才能拄着拐杖走路。Ada从小就常常生病,8岁时就曾因为头痛影响视力。身体虽然被疾病禁锢,但Ada的大脑从未停止进步。她与她的家庭教师玛丽·萨默维尔(Mary Fairfax Somerville)成为朋友。1833年,萨默维尔把Ada引荐给数学家、发明家查尔斯·巴贝奇(Charles Babbage),这位大佬将是本文下一段的主角。此后,Ada也跟迈克尔·法拉第(Michael Faraday)、查尔斯·惠斯通(Charles Wheatstone)等英国著名科学家以及小说家查尔斯·狄更斯(Charles Dickens)熟识。1834年起,Ada成为英国王宫宴会中的常客以及万人迷(a popular belle of the season)。03 “精灵小姐姐”、世界上第一位程序员、计算机时代的先知上文提到的查尔斯·巴贝奇,很受Ada的尊重,他们在工作中合作了很多年。巴贝奇也很欣赏Ada,称她为“精灵小姐姐”(Lady Fairy)。▲1836年,21岁的Ada画像,作者:Margaret Sarah Carpenter
成年后的Ada兴趣广泛,包括跟大脑如何思考相关的学科,比如颅相学和催眠术。1844年,在与巴贝奇合作之后,她跟朋友沃伦佐夫·格瑞格(Woronzow Greig)谈到,她有一个想法,她想创建一个数学模型,让这个模型说明大脑是如何产生思想和神经感觉的(“神经系统演算”)。Ada对大脑的兴趣,源于她怀疑母亲安娜贝拉有一种潜意识里的疯狂。但这项研究未能真正实现。她跟巴贝奇的合作,最令人瞩目的项目是围绕巴贝奇发明的分析机的研究。▲分析机的复制品,复原项目由Doron Swade领导,图片作者:Carsten Ullrich分析机是巴贝奇设计的一种机械式通用计算机。巴贝奇关于分析机的工作从1833年,也就是认识Ada的那一年就开始了。分析机由蒸汽机驱动,使用打孔卡输入,通过一台打印机、一个弯曲的绘图仪和一个铃铛输出,也可以在纸上打孔以便日后读取。分析机的“内存”大约可以存储1000个40位的十进制数,它有一个算术逻辑单元可以进行四则运算、比较和求平方根操作。从对分析机的这些描述来看,它跟我们现在使用的计算机已经非常相似。关于分析机,意大利数学家路易吉·梅纳布雷亚(Luigi Federico Menabrea)写了一篇论文,1842年,在惠斯通的建议下,Ada承担了这篇论文的翻译工作。在译文后面,Ada增加了许多注记,按英文字母顺序从A到G。在G中,她详细说明了如何用分析机计算伯努利数。上文说了,我们可以认为分析机就是计算机,那么Ada这个计算伯努利数的方法,也就是一个程序,而且这也是世界上第一个计算机程序。然后,写下这段程序的Ada,就成为世界上第一位程序员。▲Ada创作的伯努利数计算图,这就是世界上第一个计算机程序/算法关于Ada在巴贝奇那里的工作及贡献,以研究巴贝奇而闻名的计算机历史专家、巴贝奇分析机复原项目的领导者Doron Swade,总结了以下4点:有人质疑这段程序是不是巴贝奇自己写的,或者是由巴贝奇想出来的。对此,对此,我们可以看看当事人巴贝奇的说法。在他1864年出版的《经过哲学家人生》(Passages from the Life of a Philosopher)一书中,写道:虽然这些想法是由我们一起讨论出来的,但是最后被写进注记里的想法确确实实是她自己的构想。我将许多代数运算的问题交给她处理,这些工作也与伯努利数的运算相关。在她所送回给我的文档,更修正了我先前在程序里的重大错误。
1835年,Ada与威廉·金(William King)结婚,此后威廉·金成为洛夫莱斯(1st Earl of Lovelace),Ada也就成了洛夫莱斯伯爵夫人,就是本文最开头提到的Ada那一长串全名的一部分。关于Ada的婚姻生活,可供八卦的资料实在不多。她跟洛夫莱斯伯爵有2个儿子1个女儿,前两个孩子的名字分别是“拜伦”和“安娜贝拉”,这显然是Ada的刻意安排,以纪念她的父母。1852年11月27日,Ada为了治疗宫颈癌,却因此死于失血过多,年仅36岁。依她的遗言,Ada葬于父亲拜伦的身旁。▲1852年,去世前不久弹钢琴的Ada,作者:Henry Phillips1953年,Ada去世后101年,她的研究笔记被重新发布。在计算机科学技术改变世界的前夜,人们重新认识了这个世界上第一位计算机程序员。Ada的形象也陆续出现在小说、动漫、电影及游戏等大众文化中。
▲英国伦敦纪念Ada的蓝色牌匾,作者:Egghead06
1980年,美国国防部上线了一种新的计算机编程语言,并把它命名为Ada。Ada由Pascal及其他语言扩展而成,比较接近自然语言和数学表达式。最后我们用Ada语言编写的"Hello, World!"程序结束本文:with Ada.Text_IO;
procedure Hello is
begin
Ada.Text_IO.Put_Line("Hello, world!");
end Hello;
最后的最后,祝所有的程序媛小姐姐每天快乐
[1]Ada Lovelace - Wikipediahttps://en.wikipedia.org/wiki/Ada_Lovelace[2]Charles Babbage - Wikipediahttps://en.wikipedia.org/wiki/Charles_Babbage[3]Analytical Engine - Wikipediahttps://en.wikipedia.org/wiki/Analytical_Enginehttps://baike.baidu.com/item/阿达·洛芙莱斯/https://zh.wikipedia.org/wiki/Ada
更多精彩
在公众号后台对话框输入以下关键词
查看更多优质内容!
女朋友 | 大数据 | 运维 | 书单 | 算法
大数据 | JavaScript | Python | 黑客
AI | 人工智能 | 5G | 区块链
机器学习 | 数学 | 送书