《埃达·洛夫莱斯:史上第一位程序员》,[英]克里斯托弗·霍林斯、[英]厄休拉·马丁、[美]阿德里安·赖斯著,柯遵科、单雯译,商务印书馆2021年8月出版,147页,49.00元
提起程序员,你会想到什么?格子衫、框架眼镜和略显秃头的技术宅男,还是精致靓丽或是不修边幅的女性?大部分人脑海中的程序员是前者,这样的刻板印象早已深入人心。2022年3月,每日互动发布的《2022年女程序员人群洞察报告》显示,程序员中的女性占比仅为两成左右。这表明软件开发目前还是“男人的天下”。这样的现实,或许也会加固一些刻板印象:女生不适合学计算机、女生不适合当程序员、女程序员的技术实力比不上男性……
事实当然不是这样。要说女性不适合当程序员,有位大佬第一个不服:写下世界上第一个计算机程序的是她,第一个认识到计算机具有超越纯计算应用的人还是她。这就是软件行业的“祖师奶奶”,史上第一位程序员——埃达·拜伦。
家世与童年
埃达·洛夫莱斯(Ada Lovelace)婚前被称为拜伦小姐,她是著名诗人拜伦的女儿。或许你会好奇,这位大诗人的女儿,为什么会将理性的数学而非浪漫的文学作为毕生所爱?这还要从她的母亲说起,她的母亲安妮·伊莎贝拉·密尔班克出身于英国极其显赫的家庭,性格沉静,痴迷数学,拜伦还曾称妻子为“平行四边形公主”。遗憾的是,志趣迥异的两人没能维持长久的婚姻,安妮发现拜伦和他同父异母的妹妹奥格斯塔的不伦恋情后,再也无法忍受丈夫四处留情的恶习和喜怒无常的行为,她带着一个月大的女儿离家出走,回到娘家,不久之后便提出离婚。消息传开后,流言蜚语让拜伦一夜之间身败名裂,这位骄傲的诗人也因此离开了英国。此后,拜伦小姐一生都再未与这位大名鼎鼎的诗人父亲见上一面,甚至连他的画像都被藏了起来,等埃达成年后才看到。
独自抚养幼女的安妮认为,数学可以为女儿提供稳定的社会地位——她相信,遵循逻辑和理性的数学是拜伦喜怒无常的个性的最好解药,可以避免埃达遗传父亲身上那些“危险的诗人特质”。这件事上,拜伦与安妮的观点罕见的一致,他在给拜伦夫人的信中说:“我希望上帝让埃达变成什么样子都行,只要不是像诗人一样——一家子里有我一个傻瓜就够了。”
虽然这起离婚案件在英国闹得沸沸扬扬,但埃达却没有受到影响,她的童年几乎与世隔绝,和护士、保姆以及家庭教师一起生活在母亲的庄园里。母亲很少陪伴小埃达,因为她的大部分时间都在疗养院度过。虽然妈妈不在身边,但埃达也没闲着,安妮这位“虎妈”给埃达制定了严密的学习计划。五岁的埃达每天不仅要学习算术、语法、拼写、阅读、音乐、法语等,还要身体笔直地躺在木板上练习专注力。埃达六岁时,家庭教师开始启蒙教育。
虽然小埃达与母亲不够亲密,但她仍然毫不吝啬地在信中表达自己对母亲的爱:“我非常想让妈妈高兴,这样她跟我在一起就会很快乐。”
名师出高徒
年纪稍长,埃达开始师从著名的数学家和逻辑学家奥古斯都·德·摩根,研习数学成为这位少女生活的重心。德·摩根在写给埃达母亲的信中说,天分也许会让埃达成为“一流的、卓越的数学研究者”。
德·摩根不认同剑桥那套死记硬背、应付考试的老式数学学习方法,他希望学生能够理解数学原理,这与埃达想要深入钻研数学的志趣不谋而合。埃达在学习之初有些急躁,常常懊恼于知识的匮乏,为徒劳的努力而生气。老师以牛顿为例,耐心劝告她:“知识的匮乏感终究是无法摆脱的,当然也没有必要达到所谓的极限。”埃达后来也听从劝告,表示自己“常常能从错误中学到更多”。
德·摩根是埃达最满意的数学教师,自然,他也将埃达视作得意门生。才华横溢且富有爱心的老师与天资过人又积极向上的学生间的鸿雁往来,读来引人入胜。埃达与老师讨论关于“级数”“运算”“无差别”和“努伯利数”的几封信中,字里行间无不展示着她日益积累的数学知识和非同凡响的理解能力。大多数时间里,这样的数学课都是通过书信开展的——这位勤勉的学生经常给老师寄去好几包数学作业请他批阅。虽然一次也没有进过课堂,但当时埃达的学习水平已经大致与德·摩根带的大二学生相当,称之为天才少女亦不为过。
“假如不能给我诗,给我诗一样的科学”
作为诗人拜伦唯一的合法子嗣,埃达在学习数学的过程之中,体现出了父亲那般的天才灵气。她欣赏数学之美的能力是一种让很多人都无法理解的天赋:她发现数学是一种美妙的语言,可以描述宇宙的和谐,数学也可以是诗意的。她在给母亲的书信中提到这种“被糟蹋的天赋”时说:“如果他将这种天赋遗传给我的话,我会将其用于发现伟大的真理和原则。我觉得这是他留给我的使命。我可以非常强烈地感受到这点,而且能够投身其中是我的荣幸。”
埃达喜欢将自己天马行空的想象力和对数字的着迷联系在一起。是这份独具诗意的感知能力,让她将数学方程式视作描绘壮丽大自然的画笔。在她看来,数学“是一种能够充分表达自然世界伟大真理的语言”,而且人们可以用它描绘出体现在创造当中的“相对关系的变化”。数学,是“让人类弱小的思想能够最有效地理解世界的工具”。
埃达是骄傲的,她曾去信和巴贝奇谈到:“我认为父亲作为诗人已经达到(或者可能达到)的成就不会高于我将来在科学分析方面的成就,因为对我来说这两者可以紧密地融合在一起。”这种态度是可以理解的,因为当时对包括她父亲在内的许多人来说,浪漫主义时期的细腻感性与工业革命带来的技术狂热是互不相容的,而埃达却能在这两个时代之间游刃有余、穿梭自如。
天赋与机缘
埃达聪颖灵慧,且天赋极高,五岁半时,她的启蒙老师拉蒙特小姐向拜伦夫人汇报道,埃达对演算充满兴趣,“她可以准确算出5到6行数字相加的结果”。除此以外,埃达还对各个学科都充满好奇:她喜欢用木砖随性地盖房子,解剖过蜻蜓,对火山喷发兴趣极高……埃达八岁时,拜伦夫人在给拜伦的信中写到“她志在投身于船舶制造”。十一岁时的一次欧洲旅行,激发了埃达的想象力,让埃达爱上了飞行,她时常幻想自己能像小鸟一样飞翔。为此,她专门研究了鸟类解剖图,以及各种可充当翅膀的材料——羽毛、纸张、丝绸等,她甚至想到了利用蒸汽机来实现飞行。这位豆蔻少女还认真把自己的成果写成《飞翔学》(Flyology),以供后人参考。
尽管母亲一直严加管教,埃达身上还是展现出一些父亲的特征。她在十几岁时,与家庭教师坠入爱河,恋情暴露后,埃达还曾试图和恋人私奔。私奔以失败收场,此后埃达大病一场,病榻上的她接受了母亲的信念,认为沉浸于数学就可以帮助自己摆脱拜伦式的性格倾向。经历了这段不被允许的师生恋之后,十八岁的埃达决定开始深入学习科学。她曾给新任家庭教师写信说:“我必须断绝生活在愉悦和自我满足中的念头。我发现,似乎只有对科学课程进行非常深入和高强度的学习,才能抑制我狂热的想象力……我认为自己首先要做的是彻底掌握一门数学课程。”
埃达和新任教师以及母亲都认为,这张写满三角函数、代数学和欧几里得几何学的药方,能够治疗任何拥有过多浪漫情怀和艺术幻想的病人。
于是,从欧几里得到高阶数学,埃达沉醉于数学的世界里,孜孜不倦。对机械与数学的兴趣,以及对新发明的痴迷,把埃达领向了一个新世界——巴贝奇的分析机。这台于1834年开始设想并设计的分析机,被称为世界上第一台计算机,它的分析机由输入、储存、处理、输出四个部分组成,人们可以为分析机“编程”,让它从“存贮仓库”中截取数字,不断地循环或处理信息。
分析机是具有划时代意义的计算产品,倾注了巴贝奇的大量心血,意大利科学家路易吉·梅纳布雷亚据巴贝奇的演讲撰写了一份关于分析机的法语报告《分析机概述》。埃达将此文翻译成了英文并加以注释,稿件在《科学备忘录》发表时,共计六十六页,其中四十一页都是埃达写的注释。
埃达的图表
埃达详细解释了分析机计算努伯利数的方法:分析机从“仓库”提取数据,在“磨坊”内完成运算,最终返回“仓库”。这一过程展示在一张巨大的图表上,表中列出分析机运行的每个阶段和变量及中间结果。这张图表也因此被称为“第一个计算机程序”,用现在的计算机术语来说,这个数表就是“执行跟踪”。
最厉害的是,埃达意识到它的运算不必限制于数学和数字。一台能操作数字的机器,可以处理任何能用数字代表的信息数据。在参考了德·摩根将代数扩展为一种形式逻辑的思想之后,她表示像分析机这样的机器能够储存、计算和操作任何可以使用符号表示的对象,包括文学、逻辑和音乐。
以音乐为例,她说:“举例来说,如果在和声和作曲中,各种音调的声音的基本关系能采取这种呈现和编写方式,那么分析机就可以创作出达到任何复杂程度或长度的乐曲,既精妙又符合乐理。”
在注释中,埃达还运用雅卡尔的提花机编织图案的原理,形象地解释了分析机利用打孔卡不断循环的特性来完成编程任务的特征:雅卡尔提花机编织的是花与叶的图案,分析机编织的则是“代数的花纹”。
和如今的程序员一样,埃达深知编程的复杂性以及正确地设置程序有多么困难——“几种效应同时发生,相互独立,又或多或少的相互作用”。她也清楚,计算机最重要的是“缩短完成计算所需的时间”。
埃达是一个“工作狂”,她在一份图表中明确展示了将算法输入计算机的详细步骤,包括两个递归循环。这份工作使她“连续不断地工作了一整天”。“这是我工作成果最大的一天,”她在给巴贝奇的信中写道,“您将会非常欣赏这份图表。它是我呕心沥血的作品”。他们来往的信件证明了这份图表确实是埃达独立完成的;她在这个过程中唯一得到的帮助来自她的丈夫洛夫莱斯伯爵。他很支持妻子的爱好与工作,虽然他不懂这些算法,但还是愿意一笔一画地为妻子的铅笔笔迹描上墨水。“洛夫莱斯伯爵这时体贴地为我所写的全部内容上墨,”她在信中写道。
埃达与巴贝奇漫画
斯人已逝,精神永存
没有计算机就没有程序员,巴贝奇创造了分析机,被誉为“计算机之父”。而埃达则明确了从计算器到计算机的转变,称之为“史上第一位程序员”,乃是实至名归。这份特殊的机缘,造就了计算机史上的美谈。虽然巴贝奇分析机并没有在埃达有生之年成为现实,她的第一部算法却播下了数字时代的种子。埃达在一百年前的远见卓识,超越了同时代的任何人,她早已预见,在未来,机器会成为人类想象力的伙伴,二者的合作可以编织出如雅卡尔提花一样精美的图案。
世界没有忘记埃达,如今,埃达已经成为鼓励女性进入科学领域的一个开拓性符号。2009年,伦敦非营利组织为了纪念这位伟大的女性,并鼓励更多女性投入科研事业,将每年10月的第二个星期二定为“埃达·洛夫莱斯日”(Ada Lovelace Day)。美国国防部标准局为了纪念埃达,将历时二十年才研制成功的通用程序设计语言命名为ADA,并以埃达的生日设立了一个编号MIL-STD-1815——程序员配得上用机器和程序来言说的爱意与纪念。
当被记者问到“为什么女性需要参与科学”的时候,知名分子生物学家、普林斯顿大学教授颜宁这样回答:“不是说女性为什么需要去参与科学,而是科学本来就不应该有性别。”埃达的故事,正说明了在追求科学的道路上,女性自身也有独特的闪光点,世俗往往觉得她们太感性,与科学的理性格格不入,而她们却也细腻、敏锐,拥有和男性一样的前瞻性和执行力。女性代表了一半的人类智慧,唯有科学无性别,才能发展无边界。