美文网首页
Python之父谈Python未来与解释器重构 !

Python之父谈Python未来与解释器重构 !

作者: 0fdd04f992cd | 来源:发表于2019-08-01 09:54 被阅读0次

    Python的未来

    2019年5月初,Python之父Guido van Rossum在今年的PyCon US大会上作了名为“Python Language”的演讲。

    近日,他又接受了IT媒体Infoworld的采访,大谈Python的未来,主要谈论了以下几个问题。


    1、关于Python的性能提升

    Guido:Python 3的性能已经跟上来了,比2012年时要快的多。

    另外,还有像PyPy这样的Python实现。有一些新版本的Python解释器也在试图提升速度。

    其实,Python的性能并没有人们说的那样差,而且因为Python大部分是用C语言实现的,很多事情做起来可以和C语言一样快。

    我还是认为,Python对于大部分事情来说已经足够快了。

    尽管没有往Python 3中新增特性以改善速度,但是我们已经让语言的很多方面变快了。

    比如,引用计数比以前快了些。主要还是优化现有的代码,但是作为用户来说,很难注意到区别。

    而且如果你急需提升某个Python程序的速度,可以尝试使用PyPy。

    它已经足够成熟,值得尝试。

    Python为什么受欢迎?

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

    Python的开发工作

    Guido:目前,以及过去五年多时间里,主要是其他人在推动Python的发展。

    我偶尔进行一些指导,判断某个新想法是否值得接受,通常是设计是否要添加新语法时。在标准库开发方面,我很少干预。

    有时候,我也不得不让大家停止讨论,各自妥协。

    Python在移动计算领域的应用

    Guido:移动对Python来说仍是一个很难啃下来的平台,但是并没有浏览器平台的难度大,因为Python实际上是可以运行在所有品牌智能手机上的。

    你只需要找到懂得怎样构建移动版本Python的人就行了。

    标准的CPython源代码几乎可以编译成能在安卓和苹果手机上运行的二进制文件。有很多人在朝这方面努力,不断贡献着补丁包。

    不过进展的速度比我希望的要慢一些。不过话又说回来,我本人并不开发移动应用,所以我没有太多自己参与的动力。但是我很乐于见到这方面的进展。

    Python解释器重构

    在本月的22日,Python之父Guido在Medium上发表了他的第一篇博文《PEG Parser》。

    在该文中,Guido说他正在考虑使用PEG Parser代替现有的类LL(1) Parser(名为pgen),来重构Python解释器。

    原因是现在的 pgen 限制了Python语法的自由度,使得一些语法难以实现,也让当前的语法树不够整洁,一定程度上影响了语法树的表意,不能最好地体现设计者的意图。

    那PEG Parser和现有的LL(1) Parser有什么区别呢?

    可以这样简单地理解,PEG 语法解释器在解析语法的时候,会一次性加载全部代码,所以解释器可以根据任意位置的符号来判断语法的语义。

    而目前的 LL(1) Parse 解析语法的时候只会向前检测一个符号,来猜测语义,导致部分语法有二义性的表现,进而限制了Python语言的语法定义方式。

    当然,一次性加载全部代码,也意味着PEG Parser需要更大的内存来运行。

    说当前解释器限制了Python的语法实现,很多同学可能没有明显的感受。

    所以Guido又举了一个例子:

    在Python3.8之前,下面这段代码都是可以正常运行的,而不像大家直观感受的调用函数时应该报错。

    这就是Python解释器处理不了带来的后遗症。

    这也导致Python团队不得不在代码里增加一些不受欢迎的“特例”来处理这些边缘情况。

    Guido说,Python刚出现的时候,内存还很贵,使用LL(1) Parser是非常合理的。

    不过在现在这个内存以G为单位的时代,解释器多增加几百k甚至上兆的内存消耗,已经根本不算什么了。

    所以是时候使用更理想的 PEG Parser 来重构Python解释器了。

    最后,也是大家最关心的问题。

    这个重构会对Python语言的开发者造成什么影响呢?

    Guido表示:底层重构不会影响Python的语法。

    本文由柠檬班木森老师整理,如有侵权,请联系删除!


    关注简书,获取最新技术文章,让软件测试学习变得更简单!

    今日福利,免费领取670元大额优惠券,购买全网最全最细的Jmeter视频(120个课时 6大实战)仅需29元,可加小米老师微信:13327316731   暗号:简书

    相关文章

      网友评论

          本文标题:Python之父谈Python未来与解释器重构 !

          本文链接:https://www.haomeiwen.com/subject/stnfdctx.html