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使用cookie库操保存cookie详解
Mar 03 Python
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
使用Python脚本生成随机IP的简单方法
Jul 30 Python
python对配置文件.ini进行增删改查操作的方法示例
Jul 28 Python
将Dataframe数据转化为ndarry数据的方法
Jun 28 Python
Python实现的简单读写csv文件操作示例
Jul 12 Python
python中的插值 scipy-interp的实现代码
Jul 23 Python
python 判断参数为Nonetype类型或空的实例
Oct 30 Python
python 爬取学信网登录页面的例子
Aug 13 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
Python SSL证书验证问题解决方案
Jan 13 Python
Python 操作 MySQL数据库
Sep 18 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
蝙蝠侠:侠影之谜
2020/03/04 欧美动漫
用文本文件制作留言板提示(上)
2006/10/09 PHP
PHP+DBM的同学录程序(4)
2006/10/09 PHP
openPNE常用方法分享
2011/11/29 PHP
浅析PHP的ASCII码转换类
2013/07/05 PHP
php实例分享之二维数组排序
2014/05/15 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
phalcon框架使用指南
2016/02/23 PHP
如何正确配置Nginx + PHP
2016/07/15 PHP
PHP基本语法实例总结
2016/09/09 PHP
一个用js实现控制台控件的代码
2007/09/04 Javascript
JQUERY实现左侧TIPS滑进滑出效果示例
2013/06/27 Javascript
JavaScript通过prototype给对象定义属性用法实例
2015/03/23 Javascript
微信支付如何实现内置浏览器的H5页面支付
2015/09/25 Javascript
jQuery通过deferred对象管理ajax异步
2016/05/20 Javascript
Bootstrap编写一个同时适用于PC、平板、手机的登陆页面
2016/06/30 Javascript
全面了解构造函数继承关键apply call
2016/07/26 Javascript
基于AngularJS前端云组件最佳实践
2016/10/20 Javascript
AngularJS打开页面隐藏显示表达式用法示例
2016/12/25 Javascript
ES6概念 Symbol.keyFor()方法
2016/12/25 Javascript
jQuery基于ajax操作json数据简单示例
2017/01/05 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
Angular通过指令动态添加组件问题
2018/07/09 Javascript
VUE2.0 ElementUI2.0表格el-table自适应高度的实现方法
2018/11/28 Javascript
[08:08]DOTA2-DPC中国联赛2月28日Recap集锦
2021/03/11 DOTA
简述Python中的面向对象编程的概念
2015/04/27 Python
使用python实现链表操作
2018/01/26 Python
Python实现去除图片中指定颜色的像素功能示例
2019/04/13 Python
servlet面试题
2012/08/20 面试题
就业表自我评价分享
2014/02/06 职场文书
2014年客房部工作总结
2014/11/22 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
市级三好生竞选稿
2015/11/21 职场文书
2019行政前台转正申请书范文3篇
2019/08/15 职场文书