2010-09-08 18 views
9

¿Alguien sabe de algún lenguaje JVM alternativo, por oscuro que sea, que puede compilarse en un bytecode simple antiguo, sin la necesidad de un tiempo de ejecución de idioma.Lenguaje basado en JVM sin tiempo de ejecución de idioma

Necesito esto para tratar de desarrollar aplicaciones de Android sin penalización de inicio o tamaño. Scala, Clojure y Groovy requieren su propia biblioteca de tiempo de ejecución distribuida con la aplicación, por lo que están fuera del alcance de esta pregunta.

El único idioma que pretende satisfacer este objetivo es Mirah de Charles Nutter, pero no pude hacerlo funcionar en Windows.

EDITAR: Para aclarar un poco, sé que cualquier idioma tiene que tener la biblioteca de tiempo de ejecución. Obviamente, lo que estoy buscando es un lenguaje que no requiere tiempo de ejecución adicional además de JRE, o al menos muy limitado.

+1

Si tiene la paciencia, [hay un sitio web dedicado a los idiomas para la JVM] (http://www.is-research.de/info/vmlanguages/). No debería ser demasiado difícil pasar por eso y detectar a los posibles candidatos. –

+1

Por cierto, creo que va a ser muy difícil encontrar un idioma, cualquier idioma en cualquier plataforma, que no tenga su propia biblioteca en tiempo de ejecución. Me refiero a hacer que incluso C sea útil, tienes una biblioteca C estándar que viene para el viaje 99 veces de cada 100. –

+0

Aclaré la pregunta para señalar que el tiempo de ejecución en realidad no significa ningún tiempo de ejecución adicional además de JRE, por supuesto. – Marko

Respuesta

7

No hay ninguno que se me ocurra (tal vez Mirah, que es experimental y necesitará al menos algunas clases adicionales, supongo). Cada idioma necesita un tiempo de ejecución para la tarea que desea hacer.

La única diferencia es cuántas clases utilizables ya existen en su dispositivo. Si desarrolla Java y solo usa las bibliotecas que ya están en el dispositivo, su aplicación será bastante pequeña.

Si bien puede no ser el mejor enfoque para su problema, ¿ha considerado utilizar ProGuard? ProGuard puede eliminar partes de un tiempo de ejecución que no se utilizan en su programa específico.

Otro enfoque si la velocidad y el tiempo es realmente crítico iría con el NDK (C/C++) en su lugar.

+0

El objetivo es evitar Java, pero no pagar una penalización de tamaño y rendimiento demasiado grande. Los minimizadores de código como ProGuard pueden reducir el espacio de tiempo de ejecución, pero no pueden eliminarlo por completo. Además, por mucho que me gustaría evitar Java, me gustaría evitar aún más C/C++. – Marko

+1

Usaría Scala. El tamaño está bien con Proguard, no es Java y es tan rápido como Java (no como JRuby, Mirah, Jython, etc.). – soc

+6

FYI Mirah es un lenguaje compilado en JVM y puede producir archivos '.class' o' .java'. No necesita un intérprete o tiempo de ejecución por separado y actualmente no tiene una biblioteca estándar, por lo que es tan rápido como Java, como Scala. – BaroqueBobcat

1

Xtend tiene una biblioteca súper delgada (100kb) que delega directamente a JDK y Guava.

Cuestiones relacionadas