2010-09-08 19 views
9

Qualcuno sa di un linguaggio JVM alternativo, per quanto oscuro possa essere, che può essere compilato con un semplice vecchio codice java, senza la necessità di un runtime di lingua.linguaggio basato su JVM senza runtime lingua

Ho bisogno di questo per provare a sviluppare applicazioni Android senza penalità di avvio o dimensione. Scala, Clojure e Groovy richiedono tutti una propria libreria runtime distribuita con l'applicazione, quindi non rientrano nell'ambito di questa domanda.

L'unico linguaggio che afferma di soddisfare questo obiettivo è Charles Nutter's Mirah, ma non riuscivo a farlo funzionare su Windows.

MODIFICA: per chiarire un po ', so che qualsiasi lingua deve avere la libreria di runtime. Ovviamente, quello che sto cercando è un linguaggio che non richiede runtime aggiuntivo oltre a JRE, o almeno molto limitato.

+1

Se hai la pazienza, [c'è un sito web dedicato alle lingue per la JVM] (http://www.is-research.de/info/vmlanguages/). Non dovrebbe essere troppo difficile attraversarlo e individuare i probabili candidati. –

+1

Per inciso, penso che sarà molto difficile trovare una lingua - qualsiasi lingua su qualsiasi piattaforma - che non ha una propria libreria runtime. Intendo rendere anche C utile avere una libreria C standard che arriva per la corsa 99 volte su 100. –

+0

Ho chiarito la domanda per notare che no-runtime in realtà significa nessun runtime aggiuntivo oltre a JRE, ovviamente. – Marko

risposta

7

Non ce n'è a cui io possa pensare (forse Mirah, che è sperimentale e avrà bisogno di almeno alcune classi aggiuntive suppongo). Ogni lingua ha bisogno di un runtime per l'attività che si desidera eseguire.

L'unica differenza è la quantità di classi utilizzabili già presenti sul dispositivo. Se sviluppi Java e usi solo le librerie già presenti sul dispositivo, la tua applicazione sarà piuttosto piccola.

Anche se potrebbe non essere l'approccio migliore al tuo problema, hai preso in considerazione l'utilizzo di ProGuard? ProGuard può rimuovere parti di un runtime che non sono utilizzate nel programma specifico.

Un altro approccio se la velocità e il tempo è davvero critico sarebbe andare con l'NDK (C/C++) invece.

+0

L'obiettivo è evitare Java, ma non pagare troppo grandi dimensioni e penalizzazioni delle prestazioni. I minimizzatori di codice come ProGuard possono ridurre il footprint di runtime, ma non possono rimuoverlo completamente. Inoltre, per quanto mi piacerebbe evitare Java, vorrei ancora di più evitare C/C++. – Marko

+1

Vorrei usare Scala. La dimensione è OK con Proguard, non è Java ed è veloce come Java (non come JRuby, Mirah, Jython, ecc.). – soc

+6

FYI Mirah è un linguaggio compilato sulla JVM e può produrre file '. Class' o' .java'. Non ha bisogno di un interprete o runtime separato e al momento non ha una libreria standard, quindi è veloce quanto Java - come Scala. – BaroqueBobcat

1

Xtend ha una libreria super sottile (100kb) che delega direttamente a JDK e Guava.

Problemi correlati