内容简介:谷歌发布新项目,旨在将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《科技新闻早报》栏目!
【责任编辑:张诚 TEL:(010)68476606】
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 谷歌发布新项目,旨在将Python代码编译为Go
- 接了个新项目
- 用cookiecutter来创建新项目
- 实战第四步:新项目之十大输出产物
- Android Studio 0.2.9和新项目
- 快速接手新项目技巧:使用Runtime找到UIImage名字
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Spring Into HTML and CSS
Molly E. Holzschlag / Addison-Wesley Professional / 2005-5-2 / USD 34.99
The fastest route to true HTML/CSS mastery! Need to build a web site? Or update one? Or just create some effective new web content? Maybe you just need to update your skills, do the job better. Welco......一起来看看 《Spring Into HTML and CSS》 这本书的介绍吧!