提到程序员,很多人脑中闪现的是穿格子衫、背双肩包、不修边幅、不善言辞的技术宅男的形象。然而事实上,不仅今天不是如此,历史上也并非如此。埃达·洛夫莱斯,英国浪漫主义诗人拜伦之女、19世纪一位风姿绰约的贵族女性,被认为是“史上第一位程序员”。最近出版的《埃达·洛夫莱斯:史上第一位程序员》一书,通过梳理大量书信档案资料,还原了这位传奇女性的成长史。她的故事,也许会刷新你对程序员的认识。
埃达·洛夫莱斯的父亲是大名鼎鼎的诗人拜伦,但实际上,她的成长受父亲影响并不大。1815年12月10日,埃达出生于英国伦敦。她刚满月时,父母就离异了,拜伦移居法国。自此一别,父女二人未能再见。1824年,拜伦在希腊独立战争中死于热病。相比之下,埃达受母亲的影响更深。埃达的母亲出身于贵族家庭,自小跟随私人家庭教师学习,接受了良好的教育,学过数学和天文学。
她思想开明,晚年热衷办学,是当时颇有威望的教育改革家。
埃达出生、成长的年代,正值英国繁荣发展的时期。新的蒸汽机和相关工程技术创新使整个英国制造业焕然一新。那时,一方面,越来越多的人热衷于了解新思想。公众演讲和展示活动盛行一时,新成立的英国科学促进会年会吸引了数百人。在这些发展中,数学的地位日益提高。人们逐渐意识到数学的重要性和它在研究自然现象及社会现象中所起的作用。
另一方面,有机会受到正规教育的人仍然是极少数,尤其对于女性来说,要想深入学习更高级的数学知识,只能通过自学和非正式途径,如去图书馆或参加科学会议。
从十几岁开始,埃达通过母亲的社交圈,结交了很多当时的科学精英。在与他们的书信往来中,埃达饶有兴致地探讨科学问题,有时在数学研究上寻求他们的帮助。母亲当年的老师、激进的思想家威廉·弗伦德就曾在信中鼓励埃达要独立思考问题,不要依赖书本。在这个过程中,埃达也结识了自己后来的丈夫威廉·金勋爵。两人于1835年成婚,他们志趣相投,都对科学颇有兴趣。埃达的爱好得到丈夫的支持,结婚生子后,她仍致力于数学研究。
数学家查尔斯·巴贝奇也是埃达在社交中结识的。19世纪30年代中期,巴贝奇开始研发一种会“咬自己尾巴”的新型计算机器——分析机,它能在运行过程中修改运算。这种分析机虽未实际建成,但从巴贝奇的图纸中,可以看出其基础运算操作与现代计算机是一致的。按照设想,分析机的编程通过打孔卡实现,独立的打孔卡构成了如今所谓的“程序”。一位数学家根据巴贝奇的演讲,撰写了关于分析机的法语科学报告《分析机概论》。
埃达将这份报告翻译成英文,并在原文中增加了一些注释。
在这篇关于分析机的文章里,埃达不仅列出了“编程”图表,还写下了不少自己的思考。比如,她观察到分析机基于打孔卡的操作,实际上与数据和结果是分离的,因此她认为只要符合数学规则,分析机就可能处理数据以外的信息,如和声和作曲。她甚至想到了“人工智能”,尽管她认为分析机无法产生原创思想。《埃达·洛夫莱斯》的作者评价,埃达关于分析机的想法非常近似如今的程序员。她深知编程的复杂性,理解要把程序设计正确有多困难。
在西方,埃达·洛夫莱斯的名字并不陌生。她经常出现在庆祝女性科学家的活动中,也出现在不少戏剧、漫画和小说中。而在国内,知道这个名字的人并不多。“虽然现在的情况相比之前已经有很大好转,但今天还有很多人认为男孩比女孩数学学得好。埃达的例子表明,在数学能力上,男孩女孩是一样的。”《埃达·洛夫莱斯》一书的译者、中国科学院大学人文学院副教授柯遵科告诉《中国科学报》。