CodenameOne支持将Java代码编译为本机iOS二进制文件。它是否支持其他基于JVM的语言,如Clojure或Jruby?
答案 0 :(得分:4)
不是开箱即用但确实可行。在过去Steve ported Mirah,它是在Codename One上运行的Ruby子集。这是我们使用旧VM的时候,但也应该使用新VM。
一位社区成员也能够暂时停靠Haxe,但我不确定结束的地方。
移植JVM语言时的主要争论点是Codename One不支持反射,因此生成反射代码的鸭子类型语言实现会出现问题"。
避免反射的原因非常简单,代码大小将极大地增长,从而抵消了较小的手动编码VM的许多优点。在AOT环境中优化反射代码也很困难,因此与JIT相比它会表现不佳。
反射的许多用法可以提前用字节码操作代替,因此即使不是标准Java代码,VM也可以像标准Java代码一样工作。
我们通常喜欢在Codename One之上运行其他语言的想法,如果您遇到问题,我们会提供帮助。我们自己不投入时间的主要原因是为了保持我们的专注。