RapydScript:将特定代码转换成JavaScript的预编译器
是什么?
RapydScript是一个将特定代码转换成JavaScript的预编译器。支持使用Python语法来编写程序,然后再将其转换成 JavaScrip。转换后的代码运行性能表现与纯Javascript编写的代码是一样的。与CoffeeScript很相似,但在语法 上,RapydScript更加简洁,更加易读。并且还允许在代码段中使用Javascript语法(嵌入式)。
起初RapydScript项目的创建,目的是给那些希望能用类似Python的语法编写JavaScript的人一个替代Pyjamas方案,它不会像Pyjamas那样引入一些额外开销和复杂性。
对于熟悉Pyjamas的人来说,RapydScrip引入了许多相同的Python特性和语法支持,但不会带来同样的额外开销。
如果你没有使用过上面提到的两个编译器,那么也不用着急。要是你曾使用过纯Javascript艰难地编写过代码,那么你一定会喜爱上 Rapydscript。Rapydscript将Python和JavaScript两者的特性做了最好地结合,并带给你大多数其他Pythonic的 JavaScript替代方案所没有的特性:
- 类(Class):使用和感觉上都与Python相似。
- 模块(module):用于逻辑上抽象,并具有与Python模块相比的更多灵活性。
- 可选的函数参数:使用与Python相似。
- 继承机制:比Python还要强大,并且比JavaScript更简洁。
- 支持定义匿名函数对象:与JavaScript的匿名函数相同。
- 在代码中直接调外部的JavaScript/DOM 对象/函数/方法。不需要使用特殊的语法,并且不用管他们是不是在同一个框架中。
- 变量和对象具有有意义的作用域,再也不需要重复那些 ”var“ 或者 ”new“关键字了。
- 两种方式定义方法或函数。可以使用Python的定义方式,也可以使用JavaScript的定义方式。
- Python或JavaScript的教程(tutorial)都可以用于学习使用,包括那些小部件。
- self-hosting:编译器本身就是用RapydScript编写,然后编译成JavaScript代码,最终运行在NodeJS上面的。
下面是一个集成jQuery的例子:
安装
首先确定你已经安装了node.js的最新版本(这一步之后可能需要您重启电脑),同时还需要你安装optimist库。
从NPM用作命令行应用:
npm install rapydscript -g
编程使用:
npm install rapydscript
从Git:
如果你用的是OSX,你可以使用相同的命令。如果是Windows,你应该在安装完node.js后遵循类似的命令。
当你安装完rapydscript之后,运行下面的命令会让编译应用变得会场简单:
rapydscript [options]
注意
RapydScript在使用类生成时会自动附加新关键字,它不会将其附加到其他库所创建得到对象上。但是它会将其附加到本地JavaScript对象上,比如Image和RegExp。
jQuery错误的假设没有其他的库会修改JavaScript的对象,并不能正确的执行object.hasOwnProperty()检查它应 该检查的地方。所以我们必须贯彻标准函数库,这样dictionary方法就是不同对象的方法。常规的Python允许你调用hash.keys()和 dict.keys(hash),而RapydScript仅支持第二点——这是无可否认的痛点。
完整的指南可查看其在GitHub上的地址,点此进入。
如果你有问题、Bug报告,或特性请求,点击这里提交。
这里有几个展示RapydScript的Demo,点击下面链接了解:
- http://salvatore.diodev.fr/RapydScript
- http://salvatore.diodev.fr/RapydBox
- http://salvatore.diodev.fr/RapydGlow