作为Python之父的龟叔,从加入微软到现在,已经有半年的时间了。微软也是在龟叔入职的半年之际,独家采访了龟叔。通过向网友广泛征集13个问题,来回答网友们的一些提问。小伙伴赶紧搬好板凳,听听龟叔怎么说吧。
1.Python是如何被创建出来的
龟叔自阿姆斯特朗大学硕士毕业后,加入了CWI研究实验室,从事的正是编程语言(abc)的开发工作,但是由于缺乏语言的用户而导致语言最终取消。而后,龟叔加入了分布式操作系统(amoeba)的研发工作,在研发过程中,龟叔发现利用C语言来进行脚本程序的撰写非常的不便。而恰巧项目的leader在这个时间去了硅谷,给了龟叔自由发挥的空间,因此龟叔在圣诞节后,花了三个月的时间研发了一门编程语言,经过检测后,受到了同事的一致认可,而这门语言,便是Python。随着团队越来越多的使用Python,龟叔决定将python开源。并在usenet社区公布了Python。一经推广便获得巨大成功,龟叔受到了大量的用户私信,就这样Python一步步的发展至今。
2.在创建Python之初,是否料想到Python在AI领域获得广泛应用?
”oh, No,No,No",重要的事情说三遍,龟叔听到这个问题后,立刻用三个No表达了否定。龟叔表示,在Python创建的时候,AI并没有获得太多的关注,因为在60到70年代,AI做出了很多的预测,但是都没有实现,所以很多人认为AI已经没有发展的前景,所以Python在创建之初的目标就是能够成为一门优秀的工具语言。
3.对于Python的一些内置函数,2021年会有更新?
对于这一点,龟叔首先指出了几个Python常用的内置函数,例如lambda、map、filter和reduce函数。龟叔简要的介绍了函数的用法,并且提出想要去掉reduce的内置函数,但是这一想法遭到了一些用户的反对。龟叔很有个性的表示,Python是我写的语言,有本事你自己去写一个语言,在我的语言里,我就是要去除掉reduce。龟叔也坦言,对于Python的更新,更像是一个game-changer,去改变一些Python的使用规则。
4.Python在web开发以及移动端的应用开发应用
“Web开发和移动端的应用开发是不同的事情”。龟叔首先指明了二者是不同的。对于Web的开发,Python是一门非常受欢迎的语言,就像Dropbox的服务器,就是利用Python进行开发。当然对于Web的前端,则是JavaScript语言。当然也有利用Python进行web前端开发的尝试,但是需要用户下载并安装特定浏览器以及会出现各种bug,因此推广失败。说到这里,龟叔也不忘提及,Java同样也是在做前端,但是也是没有太大的发展。当然还有例如将Python语言翻译成JavaScript语言的尝试,或者是由JavaScript写的Python解释器。对于这些尝试,龟叔不确定他们是否会有发展。龟叔认为不同语言都有不同的目的,Python应该专注于Web的后端开发、数据科学这些更为擅长的领域。
对于移动端的应用 开发,龟叔指出确实有一些人在进行着方面的工作,但是Python更适合在桌面或者是服务器的环境中进行开发运行,很多在安卓或者是ios开发中使用Python的人发现,利用Python开发很吃资源。
5.对于新的语言,例如rust,typescript的看法?
至少从理论的角度来说,我是热爱新的语言的,经常阅读编程语言教程,但是我不擅长安装一门语言并编写程序,我没有学习过rust,但是我同一些使用过rust进行开发的人聊过天,它看上去是一门很棒的语言,对于一些特定的事情。例如在解决内存分配的问题上,我确信当你在开发一个非常大的应用时,rust在解决内存分配问题上要比c++更优秀,所以我认为rust是一门非常有趣的语言。1).龟叔在给出对于rust语言的表述后,也指出go语言也是非常有趣的语言。在所有的新语言中,go是最为pyhonic的语言。2).Julia语言在一些细节上同Python非常的类似,但是在一些语法习惯上让习惯Python编程的人很头疼。在龟叔看来,Julia的应用很有局限性,例如无法在web开发中发挥优势3).至于typescript,龟叔同样表示typescript是非常好的语言,typescript解决了一些Python无法实现的问题,最近,龟叔和它的团队也在借鉴typescript的内容来拓展Python。短短的一些话,龟叔提及了好几种编程语言,体现出龟叔对于编程语言的喜爱,和深厚的编程功底。
6.对于教学来说,是否应该在学习其他编程语言之前先学习Python
“绝对的,没有任何疑问!当被问道这个问题是,龟叔的回答是如此的干脆利落,没有丝毫的迟疑。龟叔指出,几年之前的发表在acm讨论区的一篇文章就指出越来越多的学校将Python作为编程语言教学的第一门课程。事实也是如此,无论是国内还是国外,在人工智能如火如荼发展的当下,很多大学都开设了人工智能课程,并且需要学生们具备Python的编程能力。
7.Python2 到Python3的过渡,最应该学习的是什么?
谈到Python2到Python3的过渡,归谁认为这个过程是非常简单的,有些Python2的代码甚至不需要做太多的改变就可以转换到Python3。同时龟叔也发现Python对于一些编程小白也是非常友好的,一些做金融交易的团队也在使用Python进行编程来解决问题。当然在进行Python2到3的转换时,龟叔的团队只是考虑到了Python的爱好者,认为他们都会认为Python3要好于Python2,但是实际情况有一些区别。谈到这里,龟叔还不忘指出,自己曾在twitter上指出,Python3到Python4的转换与Python2到Python3的转换是完全不同的转变。小编自己在学习的过程中,也是发现,Python2到Python3的转变并不是特别困难,而且在代码的更迭方面,只需要进行某几个语法点进行修改即可。
8.目前Python安装第三方库的方法,有新方法吗?
针对于目前Python的依赖库安装管理,pip 并不是唯一的安装方法,而且pip在针对某些第三方库的安装问题上,表现的也不是特别完美。龟叔提醒大家,在项目开发中最好是给每一个项目创建新的虚拟环境来避免“dll hell”问题。
虽然这样这并不能完全保证能够规避“dll hell”问题。特别是针对于做机器学习和数据科学的人,尽管有很多很有用的第三方库,但是不同的开源社区会开发不同的库,在导入这些库时,往往会因为版本不一致而出现错误。大家在平时的第三方库的安装过程中,相比也会遇到因为版本的不同,而导致程序报错的问题,并且这样的问题,解决起来往往并不是特别轻松。
9.为什么Python语言会被命名为“Python”
谈到Python的命名,龟叔提到了最重要的一点,是因为本人是monty Python(英国的一组超现实幽默表演团体)的超级粉丝,龟叔非常喜欢他们,并跟着他们学习英语。在很长的一段时间里龟叔都是反对利用蛇来作为Python语言的logo。龟叔还自己己设计的一个logo,logo的内容是16-ton weight(出自monty Python的作品),龟叔自己说因为这是他能够画出的最简单的图画了。在amoeba工作的时候,团队的人喜欢把每个模块都按照当时流行的TV show进行命名。而且龟叔并不喜欢以一些科学、工程上的重大事件来命名编程语言,因此他决定从流行文化中来选择命名灵感。对于“Python”的命名,网上的原因总是五花八门,现在Python之父终于给出了最权威的回答。
10.Python未来会支持量子计算吗?
这个问题把龟叔也难住了,龟叔指出自己并不知道Python能够在量子计算领域发挥什么作用,但是龟叔知道有微软的库宣称支持量子计算的加速,是用Python编写的。
11.你在微软工作的内容和职责是什么?
“退休的我觉得太无聊了,当我从dropbox辞职后,我想的是跟我的妻子到处旅游,和朋友聚聚会什么的,但是时间久了我意识到我需要项目,因此我又开始编程,包括Python的改进。“充满精力的龟叔永远都不愿意停下奋斗的脚步,龟叔为了重新找一份工作,便询问了一下,能够在微软兼职工作。但是当他参加了kevin scott的访谈后,龟叔意识到微软依旧想要全职雇佣他。谈到这里,小编只能感叹道龟叔不小心就凡尔赛了一把。龟叔入职微软后,大概花了三四个月的时间让自己明确工作方向,与喜欢用Python编程的人进行交流,包括机器学习,notebooks,excel等方向。但是龟叔觉得自己宁愿去码代码也不愿意一直同人去交流,所以开始系统的研究自己能够胜任哪些项目。
通过观察,龟叔发现机器学习和Python的流行是相辅相成的,而且他熟悉web服务器的开发,但是对机器学习却知之甚少,所以龟叔开始跟微软的机器学习工程师进行了解,但是发现需要学习很长时间。
无奈龟叔还是回归了老本行,组建团队来提升Python的运行速度。前不久龟叔的团队就发行了Python3.10beta的测试版本,未来还将将会公布Python3.11版本,3.11版本将会在速度上远远超过3.10版本。不得不说,龟叔针对于Python的更迭是无人能比的,也不愧为Python之父。
12.Python4 什么时候会发布?
”当前,谈论Python4的发布完全是一个笑话“,龟叔诙谐的回答让大家明白,Python4的发布将会是一个遥远的未来。紧接着,龟叔补充道:”我们会在今年的十月份发布3.10版本,然后再一年之后发布3.11版本,然后是3.12 ...的版本。我们会一直更新Python3的版本。我不能确定Python4会在何时出现,但是我们在以后可能会更改垃圾回收机制,全局的解释器锁也会被更改。但如果在C语言的拓展上有完全的不兼容,或者是去除掉GIL,那么或许会将Python更改为Python4版本。“通过龟叔的回答,至少让我们明确了,在很长的一段时间里,虽然会有Python版本的不断更迭,但是都不会有Python4的公布。
13.个人爱好
龟叔自嘲自己是一个很无趣的人,但是自己喜欢阅读,喜欢阅读科幻小说,喜欢骑自行车。龟叔也很热爱家人,提到自己19岁的儿子时,也是一脸的自豪,并滔滔不绝的讲起自己和儿子在生活中的一些事情。
好了,今天的分享就到这里,欢迎大家在留言区讨论Python发展以及个人爱好!