2012-05-08 4 views
1

В настоящее время я пишу встроенное приложение для среды J2ME (конфигурация CLDC 1.1 и профиль IMP-NG). Будучи испорченным всеми этими новыми функциями на языках JVM (Groovy, Scala, Clojure, вы это называете), я рассматривал возможность использования одного из них для моего кода.Языки JVM для платформы J2ME

Однако для большинства упомянутых языков требуется довольно приличная среда JVM. Большинство так называемых «динамических» языков требуют, чтобы виртуальная машина имела отражение. Многие просят поддержку аннотаций. Ни одна из вышеперечисленных функций недоступна в J2ME.

Из того, что я нашел, Xtend выглядит как жизнеспособные варианты, так как его компилятор выплескивает простой Java, а не байт-код, и не требует никакой библиотеки для выполнения задач. Конечно, сгенерированный Java-код также должен соответствовать некоторым требованиям, но Xtend веб-страница выглядит многообещающей в этом отношении:

Xtend просто делает классы и ничего

определений интерфейса в Java уже хорошо и лаконичные. У них приличная видимость по умолчанию, а также в других областях очень мало для улучшения. Учитывая все знания и отличные инструменты, способные обрабатывать эти файлы, нет оснований для их определения по-другому. То же самое относится к перечислениям и типам аннотаций.

Именно поэтому Xtend может выполнять только классы и полагаться на интерфейсы, аннотации и перечисления, определенные на Java. Xtend действительно не предназначен для замены Java, но для его модернизации.

Я прав, и можно скомпилировать Xtend-сгенерированный код для платформы J2ME, или есть некоторые конструкции, которые там не будут работать?

В качестве альтернативы вы можете порекомендовать любой другой «богатый» язык модификации Java, который можно запустить на J2ME?

Update: Зная, что «компилятор» дает результаты, как другой исходный код называется transcompiler, можно также найти Mirah, инструмент, который не требует библиотеки времени выполнения и конкретные функции Java.

ответ

1

Сгенерированный код Xtend сильно использует гуаву гуаву. Если это совместимо с J2ME, Xtend может быть языком по вашему выбору. Я не знаю ничего, что мешает использовать его на других платформах, которые предоставляют специальный комплект разработчика (например, Android).

+1

Ну, тогда это может быть проблемой ... Гува рекламирует себя как «Google Core Libraries for Java 1.6+» :( – pwes

1

В дополнение к возможности генерации источника Java, Mirah недавно добавила поддержку опции java -bootclasspath, которая позволяет сгенерировать ваш байт-код с нестандартной версией основных классов Java, например. LeJOS обеспечивает.

Это все еще немного свежо, но было бы неплохо иметь больше людей, использующих его на разных javas.