谷歌发布新项目,旨在将Python代码编译为Go

栏目: Lisp · 发布时间: 6年前

内容简介:谷歌发布新项目,旨在将Python代码编译为Go

【51CTO.com快译】Python很可能遭遇另一位强劲的编程语言对手: 谷歌Go

作为一项实验性项目,谷歌公司的Grumpy能够将 Python 代码转换为 Go 形式,这意味着Python程序将能够在编译后利用Go工具链作为静态二进制文件运行。其对Python的转换相当于创建了一款Go应用。

在一篇开源发布博文中,谷歌公司指出,该项目能够加快其Python开发型YouTube前端的升级工作。谷歌公司在此前的工作也遇到了Python用户的普遍困扰:很难利用CPython——以 C语言 编写的默认Python解释器——进行有效扩展。

谷歌公司表示,“我们认为Grumpy拥有远超CPython的实际工作负载扩展潜力。”

以小失换大得

尽管Grumpy需要通过Go工具链将Python代码转换为静态二进制文件,但这并不会给其运行速度带来多少影响。毕竟已经存在众多将Python编译为二进制形式的项目,考虑到Python本身的动态类型系统特性,其很难通过这种方式实现提速。举例来说,Cython只有在开发者提供静态C类型信息时才能实现加速。

根据谷歌的说法,Grumpy能够通过消除部分CPython遗留负担加速Python代码。其中提速效果最明显的是刻意舍弃对C扩展模块的支持以换取速度提升。目前存在着大量使用C扩展模块的资源库,其中相当一部分来自Python标准库(例如用于同C代码对接的ctypes)。

由于不再支持C扩展,Grumpy并不具备CPython的全局解释器锁(Global Interpreter Lock),而这通常被视为顺利实现Python并发负载运行的最大障碍。Grumpy还将使用Go的垃圾回收机制进行内存管理,而不再沿用CPython的类似机制。

Grumpy允许导入Go软件包并配合与Go模块同样的语法加以使用,从而在Python与GO之间建立起紧密的互操作性。这不禁让人联想到pythonnet项目,其允许Python与.Net程序集实现互操作性。

缺失部分

Go及其 工具 链目前已经被众多第三方用于开发新型语言。其中Have项目利用Go作为转换目标,而Oden项目则利用Go工具链在Haskell或者Lisp当中创建一种新的函数性语言。Oden项目已经于去年年底停止开发,不过Have项目则仍在积极推进当中。

利用Grumpy,Go的工具链将有助于帮助庞大的Python用户社区解决诸多现实难题。虽然谷歌公司的实际使用效果应该更好,毕竟Grumpy是专门针对其需求打造的项目,但我们也相信广泛Python社区同样将借此解除或者应对诸多既有障碍。不过,这一切都要视Grumpy项目的实际发展状况而定。

举例来说,Grumpy仅支持Python的早期Python 2.x语法,另外亦有众多标准库未完成移植,exec或eval这样的函数也尚无法正常使用。

而最重要的缺失部分并非对C扩展本身的支持,而是依赖于C扩展的各类资源库。失去了C扩展,意味着只有最为普通的Python脚本才能编译并运行在Grumpy的当前互操作机制之下。虽然谷歌方面也可以利用Go语言编写出相关替代方案,但其中某些大型Python库——例如NumPy——将完全不可用,而此类库正是Python整体生态系统中的重要组成部分。

原文标题:Google boosts Python by turning it into Go

原文作者:Serdar Yegulalp

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

了解更多热点新闻,请关注51CTO《科技新闻早报》栏目!

谷歌发布新项目,旨在将Python代码编译为Go

【责任编辑:张诚 TEL:(010)68476606】


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

海量运维、运营规划之道

海量运维、运营规划之道

唐文 / 电子工业出版社 / 2014-1-1 / 59.00

《海量运维、运营规划之道》作者具有腾讯、百度等中国一线互联网公司多年从业经历,书中依托工作实践,以互联网海量产品质量、效率、成本为核心,从规划、速度、监控、告警、安全、管理、流程、预案、考核、设备、带宽等方面,结合大量案例与读者分享了作者对互联网海量运维、运营规划的体会。 《海量运维、运营规划之道》全面介绍大型互联网公司运维工作所涉及的各个方面,是每个互联网运维工程师、架构师、管理人员不可或......一起来看看 《海量运维、运营规划之道》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具