除了Java之外,CodenameOne是否支持其他JVM语言?

时间:2015-12-29 00:09:01

标签: ios clojure jvm jruby codenameone

CodenameOne支持将Java代码编译为本机iOS二进制文件。它是否支持其他基于JVM的语言,如Clojure或Jruby?

1 个答案:

答案 0 :(得分:4)

不是开箱即用但确实可行。在过去Steve ported Mirah,它是在Codename One上运行的Ruby子集。这是我们使用旧VM的时候,但也应该使用新VM。

一位社区成员也能够暂时停靠Haxe,但我不确定结束的地方。

移植JVM语言时的主要争论点是Codename One不支持反射,因此生成反射代码的鸭子类型语言实现会出现问题"。

避免反射的原因非常简单,代码大小将极大地增长,从而抵消了较小的手动编码VM的许多优点。在AOT环境中优化反射代码也很困难,因此与JIT相比它会表现不佳。

反射的许多用法可以提前用字节码操作代替,因此即使不是标准Java代码,VM也可以像标准Java代码一样工作。

我们通常喜欢在Codename One之上运行其他语言的想法,如果您遇到问题,我们会提供帮助。我们自己不投入时间的主要原因是为了保持我们的专注。