【问题标题】:JVM languages for J2ME platform用于 J2ME 平台的 JVM 语言
【发布时间】:2012-05-08 20:11:14
【问题描述】:

我目前正在为 J2ME 环境(CLDC 1.1 配置和 IMP-NG 配置文件)编写一个嵌入式应用程序。被基于 JVM 的语言(Groovy、Scala、Clojure 等等)的所有这些新特性宠坏了,我正在考虑将其中一个用于我的代码。

但是,大多数提到的语言都需要相当不错的 JVM 环境。大多数所谓的“动态”语言都要求 VM 具有反射功能。许多人要求注释支持。以上功能在 J2ME 下均不可用。

根据我的发现,Xtend 看起来是一个可行的选择,因为它的编译器会输出纯 Java,而不是字节码,并且不需要任何库来满足运行时需求。当然,生成的 Java 代码也必须满足一些要求,但 Xtend 网页在这方面看起来很有希望:

Xtend 只做课程而不做其他事情

Java 中的接口定义已经非常简洁明了。他们有一个不错的默认可见性,而且在其他领域也几乎没有什么可以改进的。鉴于能够处理这些文件的所有知识和强大的工具,没有理由以不同的方式定义它们。这同样适用于枚举和注释类型。

这就是为什么 Xtend 只能做类并依赖于 Java 中定义的接口、注释和枚举。 Xtend 并不是要取代 Java,而是要对其进行现代化改造。

我说得对吗,是否可以为 J2ME 平台编译 Xtend 生成的代码,或者有些构造在那里不起作用?

另外,您能否推荐任何其他可以在 J2ME 上运行的“丰富的”Java 修改语言?

更新:知道产生结果作为另一个源代码的“编译器”称为transcompiler,还可以找到Mirah,一个不需要运行时库的工具和特定的 Java 功能。

【问题讨论】:

    标签: java-me jvm-languages xtend mirah


    【解决方案1】:

    Xtend 生成的代码大量使用了 google guava。如果这与 J2ME 兼容,那么 Xtend 可能是您选择的语言。我不知道有什么会阻止在提供专用开发工具包的其他平台(例如 Android)上使用它。

    【讨论】:

    • 好吧,那可能是个问题...... Guava 将自己宣传为“Google Core Libraries for Java 1.6+”:(
    【解决方案2】:

    除了能够生成 Java 源代码之外,Mirah 最近还添加了对 javac 的 --bootclasspath 选项的支持,它允许您针对非标准版本的 java 核心类生成字节码,例如乐乔斯。

    还是有点新鲜,不过要是能有更多人在不同的javas上使用就好了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2011-04-09
      • 2014-01-18
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2011-01-16
      相关资源
      最近更新 更多