给你十秒钟你能说出多少个世界上最伟大的程序员?
你可能会说出下面这些答案:
- Java 之父 :詹姆斯 · 高斯林 James Gosling
- Python 之父:吉多 · 范德罗姆 Guido van Rossum
- Linux 之父:林纳斯 · 托瓦兹 Linus Torvalds
- C 语言之父:丹尼斯 · 里奇 Dennis Ritche
- Unix 创始人:肯 · 汤普逊 Ken Thompson
- 微软 :比尔 · 盖茨 Bill Gates
- 并发包之父 : Doug lea
......
但是这些名字的背后都有一个特征:男人。所以我们无外乎都有一种遐想,即计算机是由男人创造的,在座的各位小伙伴们扪心自问有没有这种想法。
如果没有的话,那么你可能多少了解几个女程序员的故事,如果你脑子里充满着"计算机是由男人创造的"这种狭隘的思想的话,那么请吃千吨锤。
这篇文章我们就来盘点一下这世界上那些非常伟大的女程序员,而且这些程序员,都是美女。
所以比你优秀的人可能长得还比你好看,简直卷到古代去了。
Ada 被誉为世界上第一个女程序员。她是编程历史上的一位传奇女性,同时她也是第一个给计算机编写程序的人。她还是著名诗人拜伦的女儿。Ada 与计算机的渊源颇深。
1834 年,当时还是一名出色的机械工程师查尔斯 · 巴贝奇发明了一种可以顺序执行函数命令的机器 --- 分析机,并邀请了各行各界的朋友观摩,Ada 和其母亲也有幸参与了巴贝奇举办的参观,Ada 见到分析机之后就对其产生了浓厚的兴趣,并对分析机的运行原理略知一二,这引起了巴贝奇的注意,后来巴贝奇邀请 Ada 和他一起改良了分析机。
在 1842-43 年的九个月期间,Ada 翻译了意大利数学家Luigi Menabrea 关于巴贝奇最新提出的机器分析引擎的文章,并在文章中加满了她自己的理解和注释。
由于解释分析引擎的功能是一项艰巨的任务;许多其他科学家没有掌握这个概念,英国机构对此也没有表现出什么兴趣,所以这项工作在当时社会是一项不切实际的任务。Ada 的这份笔记是计算机发展历史上一个重要的里程碑,它超越了这个时代,才得以使后来人们站在巨人的肩膀上窥探计算机的全貌。
网友在恶搞 Ada 的同时也体现了对她的尊敬,于是把她 P 成了这样。
后来,为了纪念 Ada 对现代电脑与软件工程所产生的重大影响。America 国防部将一种高级程序语言命名为 Ada 语言。
也许是天妒英才,年仅 36 岁的 Ada 由于宫颈癌去世,她留给后人的只有这一份珍贵的写满了其注解的笔记和她为分析机编写的"第一个程序"。
Ada 被后人所铭记最重要的贡献是:她编写了世界上第一个计算机程序。
"Hopper believed that computers would someday be widely used and helped to make them more user friendly. "
Hopper 希望有朝一日计算机能被广泛使用并且对我们越来越友好。这是 Hopper 生平最希望看到的。
Grace Hopper 是计算机先驱和海军军官,她获得了耶鲁大学硕士和博士的数学学位。Hopper 以口齿伶俐和才华横溢著称,她在 America 的海军部门和私企部门都具有非常大的影响力。要知道,在此时的 America 社会,女人在军方掌权和具有影响力是一件极其困难的事情。
在珍珠港爆炸后和第二次世界大战 America 加入后,Hopper 以海军的身份加入战争。虽然刚开始 Hopper 由于身材矮小被拒绝,但她还是坚持了下来。在二战之后的 1943 年 12 月,Hopper 被分配到哈佛大学船舶计算项目组。在这个项目组,Hopper 和 Howard Aiken(爱德华 · 邓肯)一起工作,Howard Aiken 开发了 IBM 自动序列控制计算器,更广为人知的是 Mark I,它是最早的计算机之一。Hopper 的主要工作之一就是负责对 Mark I 进行编程并将机器指令打到磁带上。同时她还为 561 页的 Mark I 编写了用户手册。
所以说 America 军方和计算机之前的联系以及二战和冷战的培育,造就了 Hopper 的职业道路。
Hopper 和她实验室的同事们致力于研究对战争的精确计算,比如计算火箭弹道,为高射炮创造射程表等,除此之外,Hopper 和她的同事们还完成了军队的计算,并且在冯诺依曼研制投放在日本炸弹中起到了巨大的作用。
战后,Hopper 决定留在哈佛,成为了工程科学和应用物理学的研究员,伴随着从哈佛和海军获得的资助,Hopper 帮助开发了 Mark II 和 Mark III 计算机,在 1945 年一个晚上,Hopper 在开发 Mark II 时和她同事遇到了一个问题,当她们拆开机器的时候,发现了一只大蛾子。虽然很多工程师都使用 bug 一词来描述机械故障,但是 Hopper 是第一个将计算机问题称为 bug 并谈到 debugging 的人。
1946 年,由于年龄的原因,海军拒绝了对她定期的资助,Hopper 离开了海军。此后不久当她明显不会被提升称为终身教授时,Hopper 离开了哈佛。1949 年,她加入费城的 Eckert-Mauchly 计算机公司,担任高级数学家。该公司很快被 Remington Rand(雷明顿兰德)收购,根据军队合同开发了第一台电子计算机(ENIAC)。
1952 年,她的编程团队开发了第一个名为 A-0 的计算机语言编译器,这个编译器将数学代码翻译成机器可读的二进制代码,她们实现了为多台计算机开发程序而不仅仅是单台计算机开发程序。然后她们团队开发了 Flow - Matic ,这是第一个使用类似英语命令的编程语言。与使用数学符号的 FORTRAN 不同,Flow - Matic 使用的是常规英语单词。
Hopper 一直致力于让计算机更加贴近用户的使用:她开发用英语作为日常编程使用的语言是一种重要实践,更重要的是 1959 年 COBOL 语言作为第一个商业计算机语言被引入后,Hopper 仍促进了这门语言被军队和私企用户使用。在整个 1960 年代,她都在致力于为 COBOL 开发编译器,使得 COBOL 称为 70 年代最受欢迎的编程语言。
纵观 Hopper 的整个职业生涯,她都一直是海军预备役人员。她在军队服役了 19 年的时间。
Hopper 在她生命的尽头成为了一个广为人知的人物。她获得了 40 多个荣誉学位,许多奖学金、教授职位、奖项和会议都以她的名字命名。1991 年,乔治·布什总统授予 Hopper 国家最高技术奖国家技术奖章;她是第一位获得如此荣誉的女性。
Hopper 在晚年获得了如此多的关注甚至成为 "名人",是由于一位来自伊利诺伊州的共和党国会议员在 1983 年的“60 分钟”节目中看到了对 Hopper 的采访,看到采访后,他成功地提出了一项法案,让 Hopper 晋升为准将军衔。当她在 79 岁时作为海军少将退休时,Hopper 是 America 武装部队中最年长的现役军官。1992 年,Hopper 去世,她以全军荣誉被安葬在阿灵顿国家公墓。
2016 年,Hopper 追授了 America 最高平民荣誉总统自由勋章,以表彰她对计算机科学领域的卓越贡献。
Margaret Hamilton 是 America 计算机科学家、系统工程师和企业家,同时她也是麻省理工学院仪器实验室软件工程部主任,这个实验室专门为 Apollo 太空计划开发机载飞行软件。
Hamilton 就她参与的 60 个项目和 6 个主要项目发表了 130 多篇论文、论文集和报告。 2016 年她因领导 America 宇航局 Apollo 登月任务机载飞行软件开发的工作而被 America 总统巴拉克奥巴马授予总统自由勋章。
1961 年 - 1963 年间,她在林肯实验室从事 SAGE 项目,在这里她为一台 AN/FSQ-7 计算机(XD - 1)编写软件,同时她还为空军剑桥研究实验室编写了软件。SAGE 项目是由麻省理工学院发起的旋风项目的扩展,这个项目旨在为创建一个可以预测天气系统并通过模拟器跟踪其运动的计算机系统。SAGE 很快被开发应用于军事用途,用于在冷战期间抵御潜在的苏联攻击的防空。
Hamilton 用这样一句话描述了她的工作:
当你作为初学者参与这项工作时,他们经常让你做的是给你分配一个没人能够弄清楚或运行的程序。当我还是初学者时,他们也给了我。这是一项很棘手的任务,编写它的人很高兴他所有的评论都是用希腊语和拉丁语写的。所以我被分配了这个程序然后我运行了一下,它甚至用拉丁语和希腊语打印了答案。我是第一个让它工作的人。正是她在这个项目上的努力使她成为 NASA Apollo 飞行软件首席开发人员的候选人。
Hamilton 随后加入了麻省理工学院查尔斯·斯塔克·德雷珀实验室,这个实验室当时正在从事 Apollo 太空任务。她领导了一个为 Apollo 和 Skylab 开发软件的团队。Hamilton 团队负责开发飞行软件,其中包括由多位资深科学家为 Apollo 指挥舱、月球着陆器和天空实验室涉及的算法。她团队的另一部分人设计和开发了系统软件,其中包括错误检测和恢复软件。在计算机科学课程匮乏并且软件工程课程不存在的时期,她付出了太多。
Hamilton 的专业领域太多了,多到现在的我都没听过其中的很多概念,包括系统设计和软件开发、企业和流程建模、开发范式、正式系统建模语言、面向系统的系统建模和开发对象、自动化生命周期环境、最大化软件可靠性和重用的方法、领域分析,内置语言属性的正确性,健壮系统的开放架构技术,全生命周期自动化,质量保证,无缝集成,错误检测和恢复技术,人机界面系统,操作系统,端到端测试,技术和生命周期管理技术。
她最出名并一直被人传诵至今的事迹就是在 Apollo 11 号任务的关键时刻,Apollo 制导计算机与机载飞行软件一起避免了登月失败。事情是这样的:
在月球着陆器到达月球表面前三分钟,触发了几个计算机警报。由于向着陆器的交会雷达供电的相位不正确,计算机因中断而过载。程序警报显示“执行溢出”,这意味着制导计算机无法实时完成所有任务,不得不推迟其中的一些任务。 J. Halcombe Laning 设计的异步执行程序允许计算机通过优先处理任务来应对不断增长的需求。Hamilton 的优先警报显示打断了宇航员,以警告他们有紧急情况是否着陆,NASA 任务控制计算机工程师杰克·加曼(Jack Garman)认识到优先显示向宇航员呈现的错误的含义,并喊道:“继续前进”,于是他们继续前进。于是 Hamilton 设计的软件被冠以 “超可靠软件设计的基础”。
图为 Hamilton 在阿波罗指令舱实体模型内
除此之外,她还发明了“软件工程师”这个术语,以至于后人在此基础上创造了一个职业。
当 Lois Haibt 刚从大学毕业后就接收了 IBM 的工作机会时,她对计算机编程就只有一个模糊的概念。当时 IBM 正在开发一种能够改变一切的编程语言。作为一名年轻的问题解决者和杰出的数学科学工作者,她符合 IBM 的要求。Lois 是十人团队中唯一的女性,而且在 IBM 之前,Lois 从未接触过电脑。
Lois 参与的这个项目,就是大名鼎鼎的 FORTRAN,Lois 成为团队中重要的一员。六个月后,她被安排进编译器项目中,此后再没有离开过。Lois 在 FORTRAN 编译器的核心构建了流分析,此后 FORTRAN 成为像国家气象局这种官方机构下所使用的标准语言,这门语言很快被认为是计算机编码的突破。
Barbara 是因为找不到一份有趣的数学工作,才选择成为一名程序员的。她在斯坦福还没有计算机课程之前就进入了斯坦福大学,在斯坦福大学,Barbara 和其他同学开展了人工智能项目,并成为这个项目第一位获得计算机科学博士的女性。
Barbara 为编码的进步做出了重要的贡献,她领导了 CLU 的设计和实现,创造了第一个支持数据抽象的高级语言 Argus,以及面向对象编程的 Liskov 替换原则。
2008 年,Barbara Liskov 赢得了 A.M.图灵奖,计算机科学界的最高荣誉之一。Barbara 是麻省理工学院的教授,她在 Java、C# 和 C++ 在内的每一种现代编程语言中都可以看到她的创新。
那么这些优秀的女程序员为什么我们都不知道她们的事迹呢?
因为这世界上掌握科技资源的一直都是男性,当我们提到程序员群体这个概念时,大部分想到的都是这样。
女程序员群体大多数是人们的认知荒漠和资源倾倒的受害者,所以这不难理解为什么连我们程序员都不知道她们。
因为只有黑眼圈 + 佝偻背 + 脱发才符合大多数人心中对程序员的合理定义,所以当身边七大姑八大姨叫住我们修电脑和修路由器而我们对他们解释说:"我是程序员,不是售后维修"的时候,当他们会说:"诶你个搞电脑的怎么连这个也不会啊" 的时候,我们就只能默默苦笑了。