首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

听Python之父-Guido,讲述Python名字的由来

Guido van Rossum是Python编程语言的创始人,生于荷兰哈勒姆。现居美国,曾就职于Google公司。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发无聊的圣诞假期,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python作为程序的名字,是因为他迷上了英国肥皂剧《Monty Python飞行马戏团》在Python社区,吉多·范罗苏姆被人们认为是“仁慈的独裁者”(BDFL),意思是他仍然关注Python的开发进程,并在必要的时刻做出决定。

Guido van Rossum

2005年12月,吉多·范罗苏姆加入Google。他用Python语言为Google写了面向网页的代码浏览工具Mondrian,之后又开发了Rietveld。在那里他把一半的时间用来维护Python的开发。2012年12月7日,Dropbox宣布吉多·范罗苏姆加入Dropbox公司。

Guido van Rossum在2016年荷兰“King’s Day”的时候,被驻洛杉矶的荷兰大使馆邀请做一次演讲,观众是荷兰和美国的企业家。以下是演讲的内容。部分内容是自传,部分内容是关于编程的重要性,部分是关于Python的大思想。

Python: 社区创造的编程语言

我是一个nerd, 一个geek。我26岁大学毕业,45岁结婚。如今我60岁了。

我不是乔布斯, 也不是扎克伯格,但是在35岁的时候创造了一门编程语言。这门语言真的很不可思议。

我们的团队开始创造一门新的编程语言。我们希望可以取代Basic。Basic在微电脑例如苹果二代中使用,是业余程序员的选择。我们的团队看来,Basic将最终被取代。

我们最初创造了ABC,但是最终舍弃了ABC。ABC之所以失败的原因在于在那个时候没有互联网,在开发者和使用之间没有反馈的闭环。ABC最终是单行道的街道。

五年之后,我拾取了之前的经验,在ABC之前的反馈环做改进。互联网,小而慢,却让这成为可能。过去25年,互联网和开源的运动,确实改变了所有。我相信,这些发展对于我程序语言的成功的贡献远超过我的编程技巧和经验。

我将这门语言命名为Python。对于我来说,这是为了纪念喜剧天才Monty Python。

我这里想说一下编程语言对于程序员来说意味着什么。尤其是一个程序员需要向一个外行人解释什么是编程的时候。他们说:编程是告诉计算机做什么。你好奇的是,如果仅仅是如此的话,为什么当他们之间谈论的时候,会如此热情高昂呢?

现实来说,编程语言是程序员表达和交流思想的工具,观众是其他的程序员而不是电脑。在程序中所表达的思想会达到终端用户,尽管他们从没阅读甚至知道编程,但是确实是受益并且并影响着。

想象下Google和Facebook这样无比成功的公司取得的难以置信的成功。他们核心的理念-关于电脑能够为人类做些什么。而这些核心的理念是用程序语言来表达的。最好用来表达这个理念的程序语言是最能获得用户的。尽管Google和Facebook公司的理念不尽相同,但是这两个公司最偏爱的程序语言确实截然相反的。这正是我想说的。

真实的故事:Google公司的第一个版本是用Python写下的。原因在于:Python是Larry Page和Sergey Brin关于如何索引网页和组织搜索结果的思想的正确语言。那么Python有何不同呢?和其他程序语言相比,是如何脱颖而出的呢?

我有许多答案。一些是技术层面上的,一些是从使用的具体技巧和经验,一些仅仅是关于在正确的时间和正确的地点。但最最重要的是Paython是在互联网上发展的语言,完全开源,由一群志愿者组成的社区开发,但是这个社区不是业余,绝对是专业的。他们充满热情,也拥有绝对的原创权。

他们就是科学大楼地下室里那群极客们。我很开心能成为这个社区中的一员。我也很开心能够在每天的工作中感受到如何需要社区(我是Dropbox公司的工程师)。

因为可以感受到社区,我感受到自己是真实存在的。我想其他社区的成员也会和我有着同样的感受。这样的感受是会传染的,如今整个世界都存在着社区的成员。

Python 社区由数以百万的极客们组成,他们持续使用Python,并且喜爱使用着。 一些活跃的成员还经常组织Python会议,就是大家所熟知的PyCons。会议在纳米比亚,伊朗,伊拉克,甚至俄亥俄州举行。

我最喜欢的故事:一年前,我花20分钟的时间在伊拉克南部巴比伦大学的教室和工作人员的电话会议上回答有关Python的问题。由于组织这个活动的一个领导者的努力,在巴比伦大学现在可以使用Python编程语言。想到这次的经历,我都很激动。我从没想过我会触摸如此遥远的生命,与我自己的生活截然不同。

一个由社区创建的编程语言促进了全世界用户的幸福。明年(2017年)我可以参加古巴的PyCon!

Python的生命力-Python的深度和广度

最近我注意到了一个趋势:我开始用更多的时间来进行面对面的深入交流,编码时间也更少。虽然我后悔,但是我真的很享受前者的过程。

我本周特别喜欢的两次与用户交谈的对话都是和非常快乐的Python用户,当然他们不可能有更多的不同。对我来说,这是对Python持久的深度和广度的证实:它远远超出了你所能想象的单一技巧语言。

我的第一个访问者是纽约州石溪大学(Stony Brook University)计算机科学教授Annie Liu在一个持续了将近三个小时的互动对话中(她还有更多的话要说:-),她向我解释了她的研究的要点,就是使用集合理解写下小型的Python程序,来执行基本算法。然后优化用一种自动化的方法把它剔除出来,她总结为三个:迭代,增量和实现。 当她的学术同事嘲笑她选择像Python这样的非理论性语言时,可是她的学生们喜欢它,而且她获得了不需要高级LaTeX技能的值得出版的结果,也没有用像SETL这样的死亡语言写作。

她叙述的另一个轶事,但不知何故,我忘记了,直到她提醒我。是关于Python的缩进使用的起源。这件轶事发生在Python创建之前很久。在一家酒店的IFIP工作组会议上,一天晚上,代表们不能同意用于代码块的最佳分隔符。

在桌子上是古老的BEGIN ... END,newcomers{...},还有一些古怪的东西,如IF ... FI和缩进。 无奈之下有人说这个决定必须由一个非程序员做出。唯一一个人显然是罗伯特·杜瓦尔的妻子,当时她和丈夫一起去。 尽管时间已经很晚了,她却从她的旅馆里被叫下来,要求她作出独立的选择。 她立即决定,以纯粹的缩进结构是赢家。

现在,我可能已经把细节弄错了,但显然Lambert Meertens在场,他继续设计Python的前身ABC,尽管当时他把它叫做B (斜体意味着B不是语言,但包含语言名称的变量的名称)。 在他的版本中,只有兰伯特·米尔滕斯(Lambert Meertens)和罗伯特·杜瓦(Robert Dewar),罗伯特·德瓦尔(Robert Dewar)的妻子因为想睡觉而选择了缩进。无论哪种方式,这是一个迷人而强大的故事。

当然,Annie也提出一些要求。这里简要如下:

Quantifiers 量词。 她真的很渴望ABC(及其“EACH x IN xs HAS pred”)中的“ Some x IN xs HAS pred”符号被使用,它表面上类似于Python的any()和all()函数,但增加了语义使得x在测试成功时被执行的范围中可用。

声明类型(尽管我认为她会对Python 3的函数注释感到满意,可能会增加Django和App Engine模型类中的属性声明。)

模式匹配,一个Erlang。我一直在不时地把这些东西剔除, 很难找到真正具有闪光点的语法,但它似乎是一个有用的功能。

这和我第二天的来访者形成鲜明的对比。通过一位前同事,我认识了创业公司Dropbox创始人兼首席执行官德鲁•休斯顿(Drew Houston)。 Dropbox目前拥有2500万用户,在Amazon S3上存储PB级的数据,德鲁是一个随和的麻省理工学院毕业生,他同样很喜欢讨论定制内存分配器,风险投资的世界,以及如何保持工程师的快乐。

Python在Dropbox创业成功中有着重要的作用。在Windows,Mac和Linux(!)上运行的Dropbox客户端是用Python编写的。 这是可移植性的关键:除UI之外的所有内容都是跨平台的。 (用户界面在Mac上使用Python-ObjC桥接,在其他平台上使用wxPython)性能从来就不是一个问题-理解少量关键部分是用C语言编写的,包括用于某个特定内存的自定义内存分配器其分配模式涉及分配100,000个这样的对象的类型,然后释放除了几个之外的所有对象。 在您开始使用Dropbox发行版并了解其工作原理之前,请注意不要包含源代码,并且字节码会被混淆。德鲁不是傻子。他还嘲笑那些正在使用Java的可怜的竞争对手

重点关注两件事情:满足Python用户和编码。 这就是生活!

Python 编程哲学

在使用编程语言的时候,你最好有幽默感

1. 美观先行

2. 直接明了

3. 大道至简

4. 可以复杂,但要能够理解,不繁琐

5. 平整,最好不用嵌套

6. 稀疏不密集

7. 责任感很重要

8. 特殊案例也不可以特殊到打破规则

9. 实用胜于简洁

10. 错误不可无声无息

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180131B0EQJD00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券