导读:女神节来了,数据叔终于忍不住要聊一聊这个憋了很久的八卦,世界上第一位程序员,当然也是世界上第一位女程序员——Ada。

作者:数据叔

来源:大数据DT(ID:hzdashuju)

这位女神级的神人,全名是洛夫莱斯伯爵夫人奥古斯塔·埃达·金·诺尔(Augusta Ada King-Noel, Countess of Lovelace)。在成为伯爵夫人之前,她原生家庭的姓氏更有名一些——拜伦(Byron)。

▲Ada的画像,大约完成于1840年,这也是当今网络中Ada最常见的形象,作者:Alfred Edward Chalon

01 另类的原生家庭

别怀疑,Ada就是19世纪初期英国伟大的浪漫主义诗人乔治·戈登·拜伦(George Gordon Byron)的亲女儿。

怪不得如今很多程序员都能写出诗意的代码,原来程序员和诗人自古以来就是一家。

著有《恰尔德·哈罗尔德游记》《唐璜》等佳作的拜伦勋爵,也算是英国文学史上响当当的大佬。你或许读过拜伦的诗,但不知道你有没有读过这一句:

Ada,我屋檐下、我心中唯一的女儿。

拜伦一点没夸张,Ada是拜伦跟他夫人安娜贝拉(Anne Isabella Noel Byron)唯一的孩子。说得更明白一点就是,Ada是拜伦唯一的婚生子女,拜伦的其他孩子都是私生。

Ada这个名字,也是拜伦对女儿昵称。

▲4岁的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

02 多舛的童年:想飞的数学少女,瘫痪了

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)。

▲1835年,17岁的万人迷Ada

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)一书中,写道:

虽然这些想法是由我们一起讨论出来的,但是最后被写进注记里的想法确确实实是她自己的构想。我将许多代数运算的问题交给她处理,这些工作也与伯努利数的运算相关。在她所送回给我的文档,更修正了我先前在程序里的重大错误。

▲约1840年时的Ada,作者不详

04 后来人的无限怀念

1835年,Ada与威廉·金(William King)结婚,此后威廉·金成为洛夫莱斯(1st Earl of Lovelace),Ada也就成了洛夫莱斯伯爵夫人,就是本文最开头提到的Ada那一长串全名的一部分。

关于Ada的婚姻生活,可供八卦的资料实在不多。她跟洛夫莱斯伯爵有2个儿子1个女儿,前两个孩子的名字分别是“拜伦”和“安娜贝拉”,这显然是Ada的刻意安排,以纪念她的父母。

1852年11月27日,Ada为了治疗宫颈癌,却因此死于失血过多,年仅36岁。依她的遗言,Ada葬于父亲拜伦的身旁。

▲1852年,去世前不久弹钢琴的Ada,作者:Henry Phillips

1953年,Ada去世后101年,她的研究笔记被重新发布。在计算机科学技术改变世界的前夜,人们重新认识了这个世界上第一位计算机程序员。

Ada的形象也陆续出现在小说、动漫、电影及游戏等大众文化中。

▲英国伦敦纪念Ada的蓝色牌匾,作者:Egghead06

1980年,美国国防部上线了一种新的计算机编程语言,并把它命名为Ada。Ada由Pascal及其他语言扩展而成,比较接近自然语言和数学表达式。

最后我们用Ada语言编写的"Hello, World!"程序结束本文:

with Ada.Text_IO; procedure Hello is
beginAda.Text_IO.Put_Line("Hello, world!");
end Hello;

最后的最后,祝古今中外所有的程序媛小姐姐女神节快乐,小礼物走起来????

参考资料

[1]Ada Lovelace - Wikipedia

https://en.wikipedia.org/wiki/Ada_Lovelace

[2]Charles Babbage - Wikipedia

https://en.wikipedia.org/wiki/Charles_Babbage

[3]Analytical Engine - Wikipedia

https://en.wikipedia.org/wiki/Analytical_Engine

[4]阿达·洛芙莱斯 - 百度百科

https://baike.baidu.com/item/阿达·洛芙莱斯/

[5]Ada语言的维基百科

https://zh.wikipedia.org/wiki/Ada

有话要说????

Q: 你还知道哪些很传奇的程序媛?

欢迎留言与大家分享

猜你想看????

  • 美国又禁华为?7本书,助力网络安全产业国产化、自主可控

  • 手把手教你用Python画直方图:其实跟柱状图完全不同

  • 无处不在的流计算到底是什么?终于有人讲明白了(附导图)

  • 曾成功预测H1N1病毒疫情,细数这些年大数据的神应用

更多精彩????

在公众号对话框输入以下关键词

查看更多优质内容!

PPT | 读书 | 书单 | 硬核 | 干货 

大数据 | 揭秘 | Python | 可视化

AI | 人工智能 | 5G | 中台

机器学习 | 深度学习 | 神经网络

合伙人 1024 | 大神 | 数学

据统计,99%的大咖都完成了这个神操作

????

世界上第一位程序员,竟然是诗人拜伦的女儿?相关推荐

  1. 世界上第一位程序员是位美女——AdaLovelace【有图为证】

    AdaLovelace画像   仙女一般吧.... 简介: 阿达·奥古斯塔,19世纪诗人拜伦的女儿,数学家.穿孔机程序创始人,建立了循环和子程序概念.为计算程序拟定"算法",写作的 ...

  2. 世界上第一个程序员竟然是女性,难以置信......

    一说到程序员,人们的第一反应可能是–男的! 接着浮现在眼前的程序员标配是:眼镜,双肩包,格子衬衫,牛仔裤,运动鞋- 不难发现,在现代的IT公司里,从事编程工作的女性比例远远低于男性. 细数" ...

  3. 【历史上的今天】12 月 10 日:世界上第一位程序员诞生;Ada 语言发布;第一人称射击游戏的开拓者

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 今天是 2021 年 12 月 10 日,在 120 年前的今天,瑞典国王和挪威诺贝尔基金会首次颁发了诺贝尔奖.根据诺贝尔 ...

  4. 世界上第一位程序员是女的?

    在程序员这个男多女少的世界里,男女比例的极不均衡让男程序员们自然而然地成为了这个世界的主宰.细数下来,从C语言和Unix系统的创造者Denis和Thompson,到后来的Linux系统之父Linus, ...

  5. 女神节快乐!世界上第一位程序员就是女神

    据说,这是世界上第一位女程序员的择偶标准: 征婚启事 SELECT * FROM 男人们 WHERE (未婚=true or 离异=true) and 同性恋=false and 穷光蛋=false  ...

  6. 她,诗人拜伦之女,英国数学家,历史上第一位程序员

    作者丨吴军 来源丨大数据文摘 摘自丨<信息论> 人类使用机械处理信息的尝试是由两个看似不该有交集的英国人开启的. 在英格兰中部莱斯特郡的柯比-马洛里庄园,住着一对母女. 1816年初那个多 ...

  7. 世界上第一个程序员,居然是女神级别的人物?

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 作者丨水影月 来源丨大飞码字(ID:BigFly1024) 一说到程序员,人们的第一反应可能是--男的! ...

  8. 世界上第一个程序员——诗人拜伦之女Ada,短暂而非凡的一生

    程序员中的女神--Ada,非她莫属.Ada是世界上第一个程序员,注意,不论男女,她都是第一,Ada是英国著名诗人拜伦之女.拜伦之女为什么是个程序员呢?龙生龙,凤生凤,这不科学啊.其实,Ada除了她爸是 ...

  9. 第一位程序员原来是一个女性!

    在从事IT行业中,女性并不多,这也形成了很多人一贯的偏见,计算机都是男生做的,女孩子做不来. No.1 世上第一位程序员是名贵族小姐 但你知道吗?世界上第一位程序员出现在200多年前,而且还是一位贵族 ...

最新文章

  1. v$open_cursor与session_cached_cursor
  2. Access denied for user(这个几乎让我怀疑人生的异常)
  3. Transformer升级之路:博采众长的旋转式位置编码
  4. 广告行业一些常用物料的尺寸
  5. Struts2_1_基础案例_配置文件详解_动作类
  6. 单片机实验:外部中断按键
  7. 十三种技术文档模板_在线文档,知多少?
  8. oracle数据库6月之后的数据,Oracle数据库SCN存在可能在2019年6月导致宕机问题
  9. kafka消息堆积原因解析
  10. 演示Eclipse插件实现代码提示和补全
  11. dubbogo PMC何鑫铭:没有热爱就做不成这件事情
  12. 计算机组成原理 论文总结,计算机组成原理论文
  13. 计算机检测维修报告单,电脑维修检测报告表格.docx
  14. Java考试题(精华版附答案)-语言基础(FUNDAMENTAL)
  15. AR,VR和MR的概念区分
  16. OSChinaiOS客户端源码剖析001(架构篇)
  17. 简单实用的Mac视频转换软件:UniConverter mac中文版
  18. Ubuntu自制liveCD学习
  19. android中默认短信,android开发中设置默认短信应用的两种方法
  20. 双屏怎么快速切换鼠标_设定双屏,怎样使鼠标不会跑到第二个屏

热门文章

  1. C++笔记-空指针加强、auto自动类型
  2. C++工作笔记-getter/setter方法中大佬的风格
  3. Qt工作笔记-QDialog模式对话框传递数据给主窗口
  4. python虚拟环境拷贝到另一台电脑,不能直接使用的问题
  5. Docker 常用命令,还有谁不会?
  6. 商品订单表怎么设计_三级分销系统系统设计
  7. (王道408考研操作系统)第三章内存管理-第二节2:请求分页管理方式
  8. Wireshark个人实战总结
  9. 使用redis数据库的目的?
  10. 十二、程序返回、数据类型表示、代码注释