JRuby综述:Google App Engine支持、BiteScript及新的编译器

几周前JRuby 1.2发布了(InfoQ对JRuby 1.2RC1的报道总览了其变化)。借助于该发布,JRuby团队现在又开始了新的项目。

现在Ola Bini正忙于JRuby和Ioke的测试工作,它们将用在Google新发布的Google App Engine的Java支持上(请查看InfoQ对Java on GAE的报道)。Ola还谈到了GAE上的JRuby和Rails的需求以及建立JRuby on Rails应用的方式:

你需要使用最新版的JRuby。对于JRuby来说,自从1.2版发布后大多数变化都加到了主干上,因此请先检出最新的代码然后再进行构建。最新版的Rails也没什么问题。

因为GAE并不支持RDBMS,所以无须使用JDBC。Ola给出了Bumble,这是对Google DataStore的一个包装器。

JRuby仅仅是GAE所支持的众多JVM语言中的一个,其他还有Clojure及Rhino(Google维护了支持语言的一个列表)。Ola还列出了GAE的一些限制,这些限制会导致JVM语言出现问题,同时关于反射、线程、字节码验证等方面的一些示例也进行了更新。

与此同时,Tom Enebo创建了JRuby-Parser,它从JRuby中抽取出了JRuby解析器,凭借这一点,IDE或其他工具可以使用解析器而无需依赖整个JRuby。

Charles Nutter开始着手编写全新的Ruby编译器,其目标是将Ruby类型编译成Java类:

* 使用我的字节码DSL “BiteScript”,就像Duby一样

* 使用类的“运行时”定义来生成对应的Java版本

第二点很重要。相对于使用离线编译器来检测文件并生成代码,该编译器实际上使用了运行时的类来创建对应的Java版本。这意味着我们可以使用通常的元编程工具,这样无论何时,只要编译器得到类,它就能查看到其中的所有方法。

Charles还发布了一个有用的工具BiteScript(用于创建字节码的内部DSL),该工具使用JRuby生成字节码。JVM字节码会映射到Ruby方法上,由后者生成字节码;用于创建类和方法的那些Ruby方法构成了API并采取紧凑的方式来生成class文件。

请查看Charles关于BiteScript发布的声明来了解更多信息。

查看英文原文:JRuby Roundup: Google App Engine Support, BiteScript, New Compiler

你可能感兴趣的:(JRuby综述:Google App Engine支持、BiteScript及新的编译器)