今天,向 6 女性程序员先驱致敬

妇女节是纪念妇女权利运动的国际性节日。

1857 年 3 月 8 日,美国纽约制衣和纺织女工举行的首次大型抗议活动是记录较早的大型抗议活动。1908 年,近 15000 名妇女走上纽约街头,要求缩短工作时间,增加工资和享有选举权等,并喊出了象征经济保障和生活质量的“面包加玫瑰”的口号。而设立国际妇女节的想法产生于 20 世纪初。1975 年,联合国正式确立每年的 3 月 8 日为国际妇女节。 

今天的妇女节已经成为女王或女神的购物狂欢节。但愿我们购物之余,还会思考节日的设立初衷。今时今日,大部分女性已经不必费力争取生活基本保障类权利,但是,行业习惯、个体偏见,甚至是我们自身的固有认知,是不是依然有很多值得反思的地方,是不是需要过个默认设定意义的「妇女节」?

如今的计算机行业是个男性主导的领域。不过,20 世纪 40 年代,数字计算机刚开始出现时,女性是计算机编程的主力军。倒不是女性更聪明,而是男性将编写代码视为次要、乏味的工作,真正的荣耀集中在制造硬件上。那时候,软件这个词还没出现。即便如此,历史上,仍然有无数位女性编程先驱突破世俗偏见,克服重重障碍,获得了了不起的成就。今天我们挑选了其中 6 位,在这个特殊的日子,让我们向这 6 位伟大的女性程序员先驱致敬。

我们或截取了她们人生中一件事,或者简单概括了其生平,如果你对她们的故事感兴趣,可以去搜索更多图书与文章。

愿更多喜欢编程的女性以编程为职业,并取得成就。

节日快乐!送给所有的女士,以及男士。

1. 艾达:世界上第一位程序员

1833 年,一位刚成年的女性数学家与另外一位男性数学家相识。他们的相遇,为一种机械式通用计算机的发展奠定了基础。这位女性数学家就是艾达·洛夫莱斯,男性数学家是查尔斯·巴贝奇,而机械式通用计算机就是分析机,也是百年之后电子通用计算机的鼻祖。

1834 年,巴贝奇开始造分析机,此后他的一生都耗费在这个大项目上,但因为分析机的设计过于复杂,直到去世都没造完。意大利一位叫路易吉·梅纳布雷亚的数学家(后来成了首相)为了向欧洲哲学界介绍分析机,写了一篇论文,叫《分析机概论》。

1842 年到 1843 年间,艾达·洛夫莱斯花 9 个月的时间翻译《分析机概论》。由于采用作注的方式,译文是原论文长度的三倍。其中介绍生成伯努利数的算法,被认为是世界上第一个正式发表的计算机程序,艾达因此也被尊称为“世界上第一位程序员”。艾达在《分析机概论》的 Note A 中如下写到:

分析机与单纯的“计算机器”并无共同基础,它有自己的一席之地......这样一种新的、涵盖广阔的、强大的语言发展了起来,可用于未来的分析。相较于借助我们已有工具的帮助,这样的分析将变得更为快速和精确。进而数学世界中的精神与物质、理论与应用,彼此之间将变得更加紧密而有效。

......我们或许可以恰如其分地说,分析机织出代数的图案,正如雅卡尔提花机织出花朵和叶子。

艾达比巴贝奇本人更清晰地意识到了分析机不仅是一台处理数的机器,而是一台处理信息的机器。

艾达·洛夫莱斯(Ada Lovelace,1815 年 12 月 10 日—1852 年 11 月 27 日)

数学家、作家,翻译了《分析机概论》,并与巴贝奇共同为《分析机概论》做了大量注释。艾达被公认为是史上第一位认识计算机完全潜能的人,也是最早的程序员。

1980 年 12 月 10 日,美国国防部开发了一种新的通用编程语言,命名为 Ada,以纪念 Ada Lovelace。

2. 汉密尔顿:“软件工程”开创者

汉密尔顿是第一个提出“软件工程”的人。在为“阿波罗 11 号”飞船开发软件的早期,她就开始使用“软件工程”一词。汉密尔顿大力倡导软件开发应该受到足够的重视,应该跟硬件开发一样,被看作一门科学,并发展为一门工程学科。最终,随着时间的推移,软件工程获得了与其他技术学科一样的尊重。

当我第一次想到这个词时,在很长一段时间里,这成为大家的一个笑料——他们喜欢拿我的激进想法开玩笑,毕竟,在我们的世界里,从来没人听说过这个词。

——玛格丽特·汉密尔顿

玛格丽特·汉密尔顿(Margaret Hamilton,1936 年 8 月 17 日—   )

计算机科学家、系统工程师,曾任 MIT 仪器实验室软件工程部主任,为阿波罗登月计划开发机载飞行软件。图为汉密尔顿与阿波罗导航计算机 AGC 的源代码草稿纸合照。

3. 霍普:bug 发明人

格蕾丝·霍普是耶鲁大学的数学博士,她的编程生涯始于 1944 年,老板是霍华德·艾肯,没错,就是大名鼎鼎的哈佛 Mark I 的发明人。霍普除了是「上古三大编程语言」COBOL 的设计者,让她名垂青史的还有她和团队发现了史上第一个 bug。

1947 年 9 月,霍普团队所在的马克二号计算机突然无法正常工作,经过大家深挖,发现是一只飞蛾意外飞入机器内部引发了故障。团队把错误解除之后,霍普在计算机的日志本上记录了这一事件(见下图)。此后,人们开始用 bug(原意“虫子”)来称呼计算机中的隐藏错误。

bug 六步调试法(搞笑版)

1. 不可能有问题。

2. 我的电脑上就没问题。

3. 不应该有问题。

4. 为什么会有这个问题呢?

5. 哦,我知道了。

6. 怎么可能发生这种事!

格蕾丝·霍普(Grace Hopper,1906 年 12 月 9 日—1992 年 1 月 1 日)

计算机科学家,程序设计先驱,COBOL 设计者之一,“哈佛马克一号”计算机首批程序员。COBOL 是基于霍普发明的 FLOW-MATIC 语言开发而来的,至今,美国银行和保险领域依然在使用 COBOL。

4. Frances Allen:首位女性图灵奖得主

1959 年,Frances Allen开始领导 Harvest 编译器优化。Harvest 是 IBM 与美国政府的合作项目,是个大型数据处理应用系统。该项目的目的是通过使用编译器从用户语言的语句中自动生成代码,简化编程。Allen 的工作对编译器的研究和实践产生了深远影响,为自动程序优化奠定了基础。

Frances Allen(法兰西斯·艾伦,1932 年 8 月 4 日— 2020 年 8 月 4 日)

计算机科学家、IBM 院士、编译器优化领域先驱,因在编译器优化领域做出的突出贡献获 2006 年图灵奖,是首位女性图灵奖得主。

5. Barbara Liskov:2008 年图灵奖得主

Barbara Liskov 领导了多个重要项目,包括第一个支持数据抽象的面向对象编程语言 CLU 的设计与实现、小型交互式分时操作系统 Venus、第一个支持分布式程序实现的高级语言 Argus、面向对象数据库系统 Thor、还有分布式容错系统 Byzantine 。

其中,1975 年发明的 CLU 虽然没有被广泛使用,但它引入了许多如今主流编程语言广泛使用的特性,被视为面向对象编程发展的重要一步。CLU 深刻影响了 Java、C++、Python 等语言。1987 年,Liskov 提出了知名的里氏替换原则。

Barbara Liskov(芭芭拉·利斯科夫,1939 年 11 月 7 日—   )

计算机科学家,2008 年图灵奖得主。目前利斯科夫的研究重点是分布式计算,团队提出了知名的 PBFT 算法。

写一小段程序不难,难的是做好软件。个人觉得做出好软件要看两方面:其一是理解基本技术,数据抽象和模块化思想非常重要;其二更像一种工艺,有了正确的想法还不够,你必须思考正确的做法,将系统组合在一起的过程中变数太多。

——Barbara Liskov

6. Shafrira Goldwasse:2012 年图灵奖得主

1982 年 5 月,Goldwasser 和 Micali 发表经典论文“Probabilistic Encryption & How To Play Mental Poker Keeping Secret All Partial Information”,提出 GM 密码系统(Goldwasser-Micali)。这 是一种非对称密钥加密算法,是第一个在标准密码学假设下被证明为安全的概率公钥加密方案。

Shafrira Goldwasser(莎弗莉拉·戈德瓦塞尔,1958 年 11 月 14 日—   )

计算机科学家、MIT 教授、Duality Technologies 联合创始人和首席科学家,因密码学领域的杰出工作获 2012 年图灵奖。

| 图片版权 ©

Barbara Liskov:Kenneth C. Zirkel, CC BY-SA 3.0 via Wikimedia Commons

其他均为公版,via Wikimedia Commons

| 参考资料

人物维基百科主页

《了不起的程序员2021》
《信息简史》

图 灵 社 群

点个「在看」

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值