Python之父谈Python的未来形式


Posted in Python onJuly 01, 2016

6月初,Python之父Guido van Rossum在今天的PyCon US大会上作了名为“Python Language”的演讲。近日,他又接受了IT媒体Infoworld的采访,大谈Python的未来。我们一起来看看Guido老爹对Python的 未来是怎么看的吧。
Python在移动计算领域的应用

Guido:移动对Python来说仍是一个很难啃下来的平台,但是并没有浏览器平台的难度大,因为Python实际上是可以运行在所有品牌智能手机上的。你只需要找到懂得怎样构建移动版本Python的人就行了。
标准的CPython源代码几乎可以编译成能在安卓和苹果手机上运行的二进制文件。有很多人在朝这方面努力,不断贡献着补丁包。不过进展的速度比我希望的要慢一些。不过话又说回来,我本人并不开发移动应用,所以我没有太多自己参与的动力。但是我很乐于见到这方面的进展。
Python替代JavaScript?

Guido:这并不是我们的目标。由于浏览器平台的结构问题,我们很难和JavaScript竞争,最多就是将Python翻译成 JavaScript。不过通常情况下,翻译后的程序比Python原生程序运行的更慢,相比用JavaScript编写的同类程序则更慢。现在有人在尝 试将Python翻译成JavaScript,在浏览器中运行Python。
对WebAssembly的看法

这可能会让在浏览器中运行Python成为可能。如果它替代了asm.js,那就基本上意味着JavaScript不再是Web平台上唯一使用的语 言了,而是变成了这个类似汇编语言的东西。这和Python有点像,你编写的Python代码,其底层的Python解释器其实使用C语言编写的。在编译 时,会把Python代码翻译成机器码,而这中间也涉及了某种汇编语言。
如果我们无法在浏览器中消灭JavaScript,我们或许可以让JavaScript成为任何希望在浏览器中运行语言的统一翻译对象。这样的话,或许Python和其他语言,如Ruby和PHP,就能高效地翻译成底层的JavaScript。
WebAssembly其实对Python开发者来说是个机遇。我相信以后会有一段试验期,那些更喜欢开发工具的人可以有机会探索怎样才是在 WebAssembly之上运行Python的最好方法。他们试验成功并开始推广之后,我们就可以和Python开发者说,“你现在也可以用Python 编写浏览器客户端app了”。但现在还不是时候。
Python的性能提升

Guido:Python 3的性能已经跟上来了,比2012年时要快的多。另外,还有像PyPy这样的Python实现。有一些新版本的Python解释器也在试图提升速度。
其实,Python的性能并没有人们说的那样差,而且因为Python大部分是用C语言实现的,很多事情做起来可以和C语言一样快。我还是认为,Python对于大部分事情来说已经足够快了。
尽管没有往Python 3中新增特性以改善速度,但是我们已经让语言的很多方面变快了:比如,引用计数比以前快了些。主要还是优化现有的代码,但是作为用户来说,很难注意到区别。
而且如果你急需提升某个Python程序的速度,可以尝试使用PyPy。它已经足够成熟,值得尝试。
Python为什么受欢迎?

Guido:主要是学习方便,使用方便,而且社区开放、乐于助人。
Python的开发工作

Guido:目前,以及过去五年多时间里,主要是其他人在推动Python的发展。我偶尔进行一些指导,判断某个新想法是否值得接受,通常是设计是否要添加新语法时。在标准库开发方面,我很少干预。有时候,我也不得不让大家停止讨论,各自妥协。
我的想法是让社区能够自我延续,这样我就可以最终退休或者至少可以度个长假。我希望未来这门语言会吸收其他语言或者其他领域的新理念。

我最后想谈谈SciPy和NumPy。这两个团队正在推动使用Python替代Matlab。我们的替代方案是开源的,而且更好,他们能做到的。他 们正在将Python带领到我以前从未想象过的领域。他们开发出了像Jupyter Notebooks这样的工作,可以在浏览器中使用交互式Python。

Python 相关文章推荐
python实现支持目录FTP上传下载文件的方法
Jun 03 Python
Python实现判断一个字符串是否包含子串的方法总结
Nov 21 Python
python: 判断tuple、list、dict是否为空的方法
Oct 22 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
Ranorex通过Python将报告发送到邮箱的方法
Jan 12 Python
Python文件读写w+和r+区别解析
Mar 26 Python
Pytorch框架实现mnist手写库识别(与tensorflow对比)
Jul 20 Python
经验丰富程序员才知道的8种高级Python技巧
Jul 27 Python
python time()的实例用法
Nov 03 Python
教你怎么用Python处理excel实现自动化办公
Apr 30 Python
Python深度学习之实现卷积神经网络
Jun 05 Python
python中数组和列表的简单实例
Mar 25 Python
举例讲解Python的lambda语句声明匿名函数的用法
Jul 01 #Python
Python内置数据结构与操作符的练习题集锦
Jul 01 #Python
Python设置默认编码为utf8的方法
Jul 01 #Python
Python使用email模块对邮件进行编码和解码的实例教程
Jul 01 #Python
详解Python中使用base64模块来处理base64编码的方法
Jul 01 #Python
Python画图学习入门教程
Jul 01 #Python
Python中json格式数据的编码与解码方法详解
Jul 01 #Python
You might like
php入门学习知识点八 PHP中for循环基本应用之九九乘法口绝表
2011/07/14 PHP
openflashchart 2.0 简单案例php版
2012/05/21 PHP
PHP中类属性与类静态变量的访问方法示例
2016/07/13 PHP
浏览器兼容console对象的简要解决方案分享
2013/10/24 Javascript
JavaScript数组对象实现增加一个返回随机元素的方法
2015/07/27 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
video.js 实现视频只能后退不能快进的思路详解
2018/08/09 Javascript
JavaScript静态作用域和动态作用域实例详解
2019/06/17 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
vue.js封装switch开关组件的操作
2020/10/26 Javascript
微信小程序中target和currentTarget的区别小结
2020/11/06 Javascript
[04:44]DOTA2英雄梦之声_第12期_矮人直升机
2014/06/21 DOTA
跟老齐学Python之集成开发环境(IDE)
2014/09/12 Python
深入讲解Python中面向对象编程的相关知识
2015/05/25 Python
详解Python 序列化Serialize 和 反序列化Deserialize
2017/08/20 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
2018/11/29 Python
给大家整理了19个pythonic的编程习惯(小结)
2019/09/25 Python
python机器学习库xgboost的使用
2020/01/20 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
美国网上鞋子零售商:Dr. Scholl’s Shoes
2017/11/17 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
2013/07/06 面试题
中学教师实习自我鉴定
2013/09/28 职场文书
医学护理毕业生自荐信
2013/11/07 职场文书
获奖的大学生创业计划书
2014/01/05 职场文书
机关单位动员会主持词
2014/03/20 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
高等学院职业生涯规划书范文
2014/09/16 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
jquery插件实现搜索历史
2021/04/24 jQuery
利用Sharding-Jdbc进行分库分表的操作代码
2022/01/22 Java/Android
关于EntityWrapper的in用法
2022/03/22 Java/Android
MySQL选择合适的备份策略和备份工具
2022/06/01 MySQL