Python还是JavaScript?虽然很多朋友还在争论谁更强,谁的发展前景更光明,但毫无疑问,两者的较量在Web前端领域有了明确的答案。基于浏览器平台,如果我们放弃JavaScript,我们将没有选择的项目。好吧,也许答案并不是那么绝对。JavaScript已经成为许多其他编程语言的首选转换目标(相关示例包括TypeScript、Emscripten、Cor和Cheerp)。另一方面,Python拥有大量的追随者,强大的现有库资源使其成为JavaScript的理想转换或翻译选项。让我们看一下可以成功将Python带入JavaScript世界的四个现有项目;其中之一因其灵活的双向转换能力而脱颖而出。Transcrypt这是一个新兴的Python到JS转换器。Transcrypt对其生成的代码的质量水平做出了令人印象深刻的承诺。首先,它尽可能多地保留了原始Python代码结构,包括多重继承和lambda表达式。Python源代码也可以直接调用JavaScript命名空间中的对象。如果您尝试在Python中访问document.getElementById,转换后的代码实际上也会在JavaScript中使用document.getElementById。根据文档的介绍,Transcrypt利用CPython的抽象语法树模块来完成这些翻译任务,它可以根据Python的解析方式对自己的代码进行编程接入。虽然该项目还处于alpha测试阶段,但已经展现出惊人的吸引力。Jiphy的所谓Jiphy,全称是“JavaScriptin,Pythonout”——也就是可以将两者双向转换。此外,在翻译成另一种语言之前,可以混合使用两种语言的代码。Jiphy目前最大的缺点是它只支持Python的部分特性集。尚不支持类和默认参数,但装饰器和异常可以正常工作。这主要是由于Jiphy坚持在源代码和目标代码之间直接进行行到行的转换,但其开发人员也开始关注ES6中旨在将更高级的Python功能纳入支持范围的新功能。Brython也许有一天,当WebAssembly愿景成为现实时,我们将能够选择任何我们喜欢的语言进行Web开发。Brython对此有自己的看法-或者至少对于Python3-为什么要等待?Brython通过一组JavaScript库模拟了Python3中的所有关键字和大多数内置插件,从而实现了使用Python3版本作为客户端Web编程解决方案的目标。用Python编写的脚本可以直接添加到网页中,Brython还支持一个高级的Python模块接口(浏览器)来与DOM进行协作,而浏览器通常可以直接用JavaScript来完成。但是,Brython也保留了浏览器对JavaScript代码施加的限制——例如不支持处理本地文件系统。RapydScriptRapydScript承诺“让PythonicJavaScript代码变得如此糟糕”。该项目在概念上类似于CoffeeScript:用Python编写代码,生成JavaScript代码,并利用两者的最佳特性。在Python方面,它有明确的语法规则;在JavaScript方面,它具有匿名函数、DOM操作以及使用现有JavaScript库(如jQuery或Node.js核心)的能力。原标题:4个工具将Python转换为JavaScript(并再次转换回来)
