Я считаю, что в какой-то момент я прочитал, что из-за того, что Android работает на VM Dalvik, для динамических языков для JVM (Clojure, Jython, JRuby и т.д.) было бы трудно получить хорошую производительность на Dalvik (и, следовательно, на Android). Если я правильно помню, рассуждение состояло в том, что под капотом, чтобы добиться динамического набора текста, было довольно много упражнений с байт-кодом java и что перевод байт-кода- > далвик не стал бы легко подбирать это.
Так следует ли мне избегать динамического JVM-языка, если я хочу разработать для Android?
EDIT: Думаю, я должен был предоставить немного больше контекста. Я рассматривал возможность использования Clojure для разработки приложений для Android. Я думал об использовании Clojure по нескольким причинам:
-
Я хочу узнать FP
-
Мне не интересно изучать Java
-
Clojure, похоже, очень интересные языковые концепции (STM например).
Однако, когда я пытался писать приложения для Android в Clojure, я обнаружил, что проблема с производительностью является неприемлемой. Но я нашел сообщение в блоге, в котором говорилось, что динамически типизированные языки (например, Clojure) будут иметь проблемы из-за манипуляции с байт-кодом, необходимой для получения динамической типизации. Поэтому я искал независимое подтверждение того, что это правда, или нет. Я должен был знать лучше, чем предположить, что в этой конкретной проблеме все динамически типизированные языки JVM можно рассматривать как одно и то же. Наверное, я задал довольно широкий вопрос, поэтому, думаю, я не должен удивляться, что люди не совсем поняли, о чем я просил.