Python部落组织翻译,禁止转载,欢迎转发

InfoWorld的编辑对话Python之父,讨论Python的性能、生态系统和在移动开发和浏览器方面的前景。

问:有没有什么正在做的计划,来促进Python在移动计算领域的发展?一般提起移动领域,大家都会想到用Java做Android开发,用Swift/Object-C做IOS开发。

Python之父:在这方面,我们还很难取得进展。比浏览器强一些的是,实际上Python能在任何品牌任何系统的手机上运行。你只需要找一些人,把Python在对应的平台上编译一下。

不幸的是,标准CPython貌似在Android和IOS平台上不能正常运行。很多人都对把Python移植到手机平台感兴趣,很多人还做了很多小功能,比如检测你是否是在Android平台上。这方面有进展,尽管进展不如我期望的那么快。同时,由于我自己不开发手机应用,所以我对此不是特别感冒,不过我还是很乐意看到有其他人在做这件事。

问:Python是否会像Javascript一样在浏览器领域占有一席之地?还是说并没有这样的打算?

Python之父:我们有更好的目标。

由于当前浏览器世界的格局,很难有编程语言能够与Javascript竞争。我们能做的最大限度就是将Python翻译成Javascript。但是通常翻译后的程序比直接运行Python要慢的多,跟原生的Javascript程序更是无法比拟。尽管如此,还是有一些激动人心的项目在努力将Python翻译为Javascript。

问:既然谈到了Javascript,谈谈您对WebAssembly的看法?

Python之父:这也许是让Python能够在浏览器中运行的更好的方法。如果它能够替代asm.js,那么它实际上就改变了只有Javascript才能运行在浏览器之中的事实,它就把Javascript变成了一个类似WebAssembly的东西。就像如果你写Python,Python的解释器是由C写的。当C编译的时候,它会被编译成机器码,WebAssembly其实就是和机器码差不多的作用。

在浏览器领域,既然我们杀不死Javascript,那么Javascript就会变成其他语言编译的目标。这样,Python以及其他语言就可以通过翻译为Javascript,进而编译成更底层、更高效的形式。

问:所以WebAssembly实际上给Python开发者带来了机会?

Python之父:我认为是这样的。这里面会有一个实验的过程,刚开始大家会热衷于写开发工具而不是实际的应用,在这个过程中,大家努力去寻找在WebAssembly上运行Python的最佳方式,最终他们一定会成功。找到运行的最佳方式之后,早期的开发者就会开始告诉普通的Python开发者:“你们现在可以用Python编写浏览器端的应用了。”不过这一切需要时间。

问:我2012年采访您的时候,Python正由于性能问题受到诟病。当时您告诉我其实Python运行的已经足够快了,从那以后Python是否有性能上的改善呢?

Python之父:Python3的性能逐渐赶上来了。现在的Python3比2012年的时候快多了。除此之外,一切其他的Python版本如PyPy也在努力改善Python的性能。也有一些项目从解释器入手提高Python的性能。

结果是,事实上Python的性能问题并没有大家说的那么严重。因为Python实际上是用C编写的,有很多地方Python就和C一样快。我始终相信对于Python的主要应用场景,Python已经足够快了。

问:有什么特性是为了提高Python的性能而加入到Python中的吗?

Python之父:我们没有给语言添加任何性能相关的特性。在内部,我们让语言的很多部分都变快了;引用计数,我相信,快了一点。都只是更好地使用了已有的东西,而语言的用户没有感知到多少变化。我们不提倡说:“嘿,换一种方法写,这样代码运行会快一些”,这是没有必要的。

问:你提到PyPy,像PyPy和Futhark这样的项目给你的印象如何?Futhark自动生成Python代码,以及其他语言的代码,这些代码能够直接调用GPU的代码。

Python之父:后面那个我没有听说过。做这类事情的项目一般都很深奥,这类项目适合那些做很酷、很疯狂的事情的人,通常典型的Python开发者不会用到。

但是PyPy是很成熟的。如果你写的是通用的Python程序,而且切实地觉得Python不够快,那么你值得花点时间看看你的程序是否能用PyPy运行,并且是否确实PyPy运行会快一些。当然也有可能用PyPy运行后速度更慢了,因为实际上你在使用一个扩展模块,并且运行过程中再各个扩展模块之间跳来跳去,所以有时候Python就运行得更慢了。

如果你做的事情大量地依赖于一个扩展模块,恐怕你还是得用CPython。

问:你会不会因为各种Python框架的繁荣以及像Futhark这样的项目在Python生态系统中的发展而感到惊讶?

Python之父:每个人都希望是胜出队伍的一员,看起来Python正在逐渐胜出,如果你观察Python领域有多少大型会议,以及像PyCon和EuroPython这样的大型会议有多少人来参加就会相信这一点。简直是遍地开花,这很令人兴奋。我经常看到有人为自己的项目寻找会场,而这些项目可能最开始是由Python构建的,可能是支持Python的,也有可能是受到Python启发的。

问:为什么现在Python这么火?在编程语言流行度排行榜上,无论是Tiobe、PyPL、GitHub还是RedMonk,Python的排名都很高。

Python之父:由于Python好学好用,而且社区开放又热情。

问:你说过虽然你负责Python的开发,但是有很多人都对Python有贡献。那这其中多大比例来源于你,多大比列来源于其他人呢?

Python之父:在过去的5年里,几乎所有的代码都来源于其他人的贡献。我偶尔去评判一个想法是否可以接受,通常我只会评判有关Python语法的问题。对于库,我很少干涉。有时候我不要告诉大家停止争论,通过妥协来让事情取得进展。

我希望社区能够自我维护,然后我就可以渐渐地退出,然后长期去休假。我希望Python能够从其他语言和其他领域吸收新的想法。

我想特别指出的是Scipy运动和Numpy运动。那些人用Python替代了Matlab,因为Python是开源的,Python更好,而且他们能够修改Python。他们把Python带到了我没有想到的领域。他们甚至创造了Jupyter Notebook来在浏览器上使用Python交互终端。在那个领域,有很多难以置信的很酷的项目在发展。

python之父叫啥-对话Python之父:Python下一步做什么?相关推荐

  1. python之父叫什么-对话Python之父:Python下一步做什么?

    Python部落组织翻译,禁止转载,欢迎转发 InfoWorld的编辑对话Python之父,讨论Python的性能.生态系统和在移动开发和浏览器方面的前景. 问:有没有什么正在做的计划,来促进Pyth ...

  2. python电脑发音-Python之父发声:我们能为“996”程序员做什么?

    4月7日,知名开发者,编程语言Python之父Guido van Rossum在Python讨论区针对国内程序员996工作制发声. Guido发文称,"我们能为中国的"996&qu ...

  3. java与python多态的区别_如果未调用父构造函数(与Java不同),多态性在Python中如何工作? - java...

    因此,父类构造函数是在Java中调用的,而在Python中则不是.如果这意味着未创建父对象,那么如何在Python中成功调用def function-这是怎么回事? Python代码 class Pa ...

  4. python对话机器人怎么搭建代码语言库_教你用python几十行代码编写对话机器人

    教你用python几十行代码编写对话机器人 最近闲来无事,就自己写点代码弄了一个对话机器人.当然,这个机器人是基于图灵机器人这个平台的接口的,因为对于我这个小白来说自己编写一个机器人代码还是颇有难度啊 ...

  5. python之父是哪国_Python之父:Python概览

    Python之父:Python概览 作者:PHPYuan 时间:2019-03-08 03:40:55 本系列文章译自Python之父 Guido van Rossum 的系列博客"The ...

  6. python队列线程池_实例详解:python高级编程之消息队列(Queue)与进程池(Pool)

    今天为大家带来的内容是:python高级编程之消息队列(Queue)与进程池(Pool),结合了实例的形式详细分析了Python消息队列与进程池的相关原理.使用技巧与操作注意事项!!! Queue消息 ...

  7. python商业爬虫教程_廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程...

    廖雪峰老师的Python商业爬虫课程 Python网络爬虫实战教程 体会不一样的Python爬虫课程 1.JPG (53.51 KB, 下载次数: 1) 2019-8-9 08:15 上传 2.JPG ...

  8. python课程推荐-课程推荐:四天人工智能 python入门体验课

    作为一名被大数据和数量信息包裹的文案,我们必定要在文案力.创意和策略能力之外,准备一个加薪引擎--以技术思维处理数据运算的能力. 只有跑得足够快,才能不被行业当成 "老古董" 落下 ...

  9. python代码需要背吗-纠结应该先学Python还是Java?看完就有数了

    准备学习编程前,你一定会打开电脑搜索一下"先学Python还是先学Java?"扑面而来的是海量回答.如果你问一名Java程序员,肯定会建议你先学Java,因为他们认为Python像 ...

最新文章

  1. (深入理解)强化学习中的policy-based和value-based区别是什么?
  2. Linux Bash变量-数值运算与运算符
  3. 【Flutter】手机应用类型 ( Android | iOS | Native 应用 | Web 应用 | Hybrid 应用 | ReactNative 应用 | Flutter 应用 )
  4. 如何消耗更少资源?Unity优化技巧(上)
  5. 【Linux】一步一步学Linux——passwd文件详解(107)
  6. 排序(选择,冒泡,直接插入,希尔排序)
  7. 介绍一个非常好用的文件服务器 - HFS
  8. Object_id用法
  9. linux里gpl_GPL实施,ONOS与Linux Foundation合作以及更多新闻
  10. 透明大页相关内核参数_Alibaba Cloud Linux 2系统中与透明大页THP相关的性能调优方法...
  11. [sipdroid]3CX voip 服务器的搭建教程---个人实践版
  12. java输入输出操作c盘文件拒绝访问问题
  13. 验证性因子分析(二)
  14. 浏览器或是搜索引擎怎么拉黑某个网站
  15. Python之科赫曲线绘制
  16. 解决Eclipse4K屏下工具栏过小
  17. LabVIEW基础-程序发布至web
  18. 扫码授权登录最佳实践
  19. H5 + WebGL 展示的3D无人机
  20. 谷歌chrome、edge浏览器 解除网页右键屏蔽

热门文章

  1. 《蚂蚁金服11.11:支付宝和蚂蚁花呗的技术架构及实践》阅读心得
  2. Error resolving template [commodity/getCommodityList], template might not exist or might not be acce
  3. 万亿移动支付产业的难点和痛点
  4. PHP中关于时间(戳)、时区、本地时间、UTC时间等的梳理
  5. STM32 —— 串口通讯
  6. 最大流最小割经典例题_最大流, 最小割问题及算法实现
  7. POJ 2062 完全背包
  8. Kotlin常用高阶函数
  9. Python数学计算工具4、Python求最大公约数
  10. fabric roles