该内容已被发布者删除 该内容被自由微信恢复。
文章于 2020年1月2日 被检测为删除。
被用户删除
转自量子位,作者十三、边策 如果你上过编程课,一定被老师提醒过:不要使用 goto 语句! 因为 goto 语句不仅让代码的可读性很差,随意的跳出还会给程序带来安全隐患。 但是这种几乎被现代编程明令禁止的语句,在计算机诞生之初却司空见惯。 早期的程序员用 goto 来解决代码无法预料的后果,遇到什么问题就用一句 goto,让程序跳转到某个指定语句。 直到一位 MIT 的女教授,才让我们彻底摆脱了 goto 语句的支配,她就是 Barbara Liskov。 刚满 80 岁,荣誉等身,她是全美首批获得计算机博士学位的女性之一,集冯诺依曼奖、图灵奖于一身。 甚至可以说她发明了构成现代程序基础的体系结构。 但在此之前,她是一位曾经因为性别申请普林斯顿数学研究生被拒的人。 所以 Barbara Liskov 究竟是怎样的传奇计算机科学家? 在其 80 岁寿诞之际,我们一起看看她改变了编程的故事。 上世纪 40 年代,美国发明了第一台电子计算机 ENIAC。虽然早期的计算机体积很大,但提供的功能简单,那时候的编程也不必考虑太复杂的结构。 goto 语句是最简单的方法,只需把程序的执行引导到对应的某一句即可。 广泛使用的 goto 语句虽然简单,但是却没有逻辑章法。用这种方式编写的程序既难以阅读,又容易造成危险,甚至还闹出过人命。 曾经有一种名为 Therac-25 的软件控制的放射治疗机,就因为使用了过时程序设计方法,导致 6 名患者接受严重超剂量的辐射,造成了死亡事故。 如果没有一个程序设计的基本架构,计算机硬件的发展已经超出了程序员能力所能承受之重。 终于在 60 年代,计算机程序设计迎来了新的理论,当时 Böhm 和 Jacopini 两位计算机学家提出,可以用结构化的程序完全代替 goto 语句,只需使用顺序、选择和循环三种结构即可。 这种结构一直被使用至今。 1974 年,彼时仅 35 岁的 MIT 女教授和她的学生将这种思想付诸实践,他们发明了一种新的编程语言 CLU。 CLU 完全抛弃了 goto 语句,虽然这种编程语言没有被广泛采用,但是它在面向编程语言的发展过程中起过非常重要的作用。 CLU 中的一些概念在许多方面影响了后来的编程语言,对后来出现的一些面向对象编程(OOP)语言做出了许多贡献。 后来出现的 Java、C++、C#、Python 都是 CLU 的后代。 CLU 的关键贡献包括抽象数据类型、共享调用、迭代器、多个返回值、类型安全的参数化类型和变量类型。 Liskov 对程序设计的贡献不仅于此,现代面向对象程序设计的 5 大原则 “SOLID” 中的 L 就是以她名字命名的里氏替换原则(Liskov Substitution principle)。 1987 年,Liskov 在一次大会的主题演讲中最早提出了这一原则,即继承必须确保超类所拥有的性质在子类中仍然成立。 遵循里氏替换原则编写的程序,克服了继承中重写父类造成的可复用性变差的缺点。 而且这一原则还保证了程序的正确性,扩展的子类不会给已有的系统引入新的错误,降低了代码出错的可能性。 直至今日,所有面向对象编程的程序员还在遵守着 Liskov 提出的这项原则。 如今 Liskov 的学术成就已经获得的广泛的承认。 但在那个年代,作为一个科学家,还是个女性,真的挺不容易,曾因为性别申请普林斯顿数学研究生遭拒。 Liskov 在伯克利读本科期间,100 人的班里,只有一两名女性同学,她就是其中之一。 她修完了所有和数学、科学相关的课程,而学校当时却不鼓励女性同学这样的做法。 也从来没有人对她说:“嘿,你这样做很好,不考虑跟我们一起合作吗?” 之类的话。 好在 Liskov 的母亲没有当面反对过她 (虽然只是鼓励她要在学校好好表现)。 但她对此不以为然,直到在斯坦福读研毕业时,才意识到 “性别” 问题的存在。 因为在她毕业的时候,没有任何人找她谈工作的事情。 而像她的男性同学 (Raj Reddy) 就能被招聘到学术方向的岗位。 要知道,在那个年代,就业有点像 “包分配”—— 顾问会通过与全国各地部门的合作来安排毕业生的工作。 但对于 Liskov,可谓是 “无人问津”。 在这之前,Liskov 已经向 MIT 求职过,但得到的反馈却是 “不考虑担任教授”。 发生这种情况时,你会认为 “是我自己还不够优秀”。 “但同时我也认为,计算机科学是开放的。” 幸好 Liskov 在 Mitre 公司的第一份工作还算不错,她在这家公司期间,深入的研究了编程方法。 这项研究让她获得了一个一等奖论文。 1971 年,她针对这项研究发表了一次演讲,而后便受到了 MIT 和伯克利的邀请。 事情至此才发生了改变。 刚刚进入 MIT 时,大约 1000 名员工中只有约 10 名左右的女性教员。但其实,MIT 有很多杰出的女性并不在教职人员之列。 在科学领域,很少有人能够意识到女性做出的一些基础性贡献。 90 年代,她回到斯坦福参加了一个部门庆典。一群老教授们谈论着 “校园关系网 (old-boy network)” 的八卦,他们说: Liskov 觉得这件事情真是愚昧至极。 在 Liskov 担任计算机科学系主任之前的 10 年里,部门只发现了一位值得聘用的女性。 2001-2004 年,在她担任部门领导期间,Liskov 共聘用了 7 名女性,她并没有滥竽充数,其中的 3 名初级教员都非常优秀。 再后来,Liskov 获得了图灵奖,即便拥有了如此殊荣,还是免不了质疑的声音。 “简直一派胡言”,Liskov 说道。 即便到了足够开放的今天,她也认为现在的情况并不比那时好: 那么,Liskov 对人工智能和机器学习发展有什么看法呢? 那时候,人们认为,一个明智的做法是让程序按照人类的意愿来行事,但现在已然不是这样了。 而对于计算机科学的发展,Liskov 比较担心的是互联网,包括假新闻和安全问题。 分享 Liskov 对女性在事业发展过程中的一点建议: 博客:
https://www.quantamagazine.org/barbara-liskov-is-the-architect-of-modern-algorithms-20191120/ 维基百科:
https://en.wikipedia.org/wiki/Barbara_Liskov 个人主页:
https://www.csail.mit.edu/person/barbara-liskov 推荐阅读: 牛逼!这家 AI 公司用面具破解了中国的人脸识别系统!
微软花 2 个亿做出来的软件免费用!网友:太良心了!
P 站 2019 年度报告里都说了什么?
Nginx 之父被抓了?!
2019 年最全 IT 吃瓜指南
其他
她改变了编程
以下文章来源于量子位 ,作者关注前沿科技
公众号关注 “GitHubDaily”
设为 “星标”,带你了解圈内新鲜事!
△芭芭拉・利斯科夫 (Barbara Liskov),图源:QuantaMagazine
好的设计,才有好的代码
传奇的女性,Barbara Liskov
△Barbara Liskov 正在设计抽象数据类型 (ADT)
有个年轻女人表现得确实非常不错,但那是因为她嫁给了一个教授。
△2008 年度美国计算机学会 (ACM) 图灵奖 (Turing Award)
她做的工作,没有我不知道的。为什么她会获得图灵奖? 哦,那个工作不是她做的,是一个男同事替她做的。
也许我是幸运的。如果我大学一毕业就结婚了,我可能会有一个完全不一样的结果。
如何看待 AI 的未来
我博士学位的工作是与 John McCarthy 合作研究人工智能。 John 提出了「国际象棋残局」这个主题,由于我没有玩过国际象棋,所以我读了相关书籍,并将国际象棋的一些算法翻译成了计算机算法。
现在的机器学习程序在多数情况下效果还是不错的。但有些情况下效果却并不是理想,人们不知道问题出在了哪里。 如果我在研究一个问题的时候,需要知道它的工作原理,那我不会用机器学习方法。 人工智能是一种应用,而不是一门核心科学。
若是一对离婚的夫妇,丈夫在发表一些对妻子诽谤的内容,包括她的住址之类的私人信息,那就很可能引发一些非常可怕的事情。 这要回溯到 80 年代。那时候,15 所大学和几个政府单位实验室通过互联网连在一起。我们都是好朋友。他们当时的态度是,网站不应该对内容负责,这将扼杀他们的发展。 而现如今,这种态度还在继续。 我们现在解决当下问题的时候,需要的不仅仅是技术,还需要法律来解决人们的不良行为,解决隐私与安全的问题。
One More Thing
在你能真正站起来之前,保持低调。而后再去拥抱成功。
传送门
https://www.quantamagazine.org/barbara-liskov-is-the-architect-of-modern-algorithms-20191120/
https://en.wikipedia.org/wiki/Barbara_Liskov
https://www.csail.mit.edu/person/barbara-liskov