2010-09-08 5 views
9

Est-ce que quelqu'un connaît un autre langage JVM, aussi obscur soit-il, qui puisse être compilé avec le vieux bytecode java, sans avoir besoin d'une langue d'exécution.Langage basé sur JVM sans langage d'exécution

J'ai besoin de cela pour essayer de développer des applications android sans démarrage ni pénalité de taille. Scala, Clojure et Groovy nécessitent tous leur propre bibliothèque d'exécution distribuée avec l'application, ils sont donc hors de la portée de cette question.

Le seul langage qui prétend satisfaire à cet objectif est le Mirah de Charles Nutter, mais je ne pouvais pas le faire fonctionner sur Windows.

EDIT: Pour clarifier un peu, je sais que toute langue doit avoir une bibliothèque d'exécution. Évidemment, ce que je recherche, c'est un langage qui n'a pas besoin d'être exécuté en plus de JRE, ou du moins très limité.

+1

Si vous avez la patience, [il y a un site web consacré aux langages pour la JVM] (http://www.is-research.de/info/vmlanguages/). Il ne devrait pas être trop difficile de passer par là et de repérer les candidats probables. –

+1

Incidemment, je pense qu'il va être très difficile de trouver une langue - n'importe quelle langue sur n'importe quelle plate-forme - qui n'a pas sa propre bibliothèque d'exécution. Je veux dire que même C est utile, vous avez une bibliothèque C standard qui vous accompagne 99 fois sur 100. –

+0

J'ai clarifié la question en notant que sans runtime, il n'y a pas d'exécution en plus de JRE, bien sûr. – Marko

Répondre

7

Il n'y a aucune je peux penser à (peut-être Mirah, qui est expérimental et aura besoin au moins certaines classes supplémentaires je suppose). Chaque langue a besoin d'une exécution pour la tâche que vous voulez faire.

La seule différence est combien de classes utilisables sont déjà sur votre appareil. Si vous développez Java et n'utilisez que les bibliothèques déjà présentes sur l'appareil, votre application sera assez petite.

Bien que ce ne soit pas la meilleure approche de votre problème, avez-vous envisagé d'utiliser ProGuard? ProGuard peut supprimer des parties d'une exécution qui ne sont pas utilisées dans votre programme spécifique.

Une autre approche si la vitesse et le temps est vraiment serait à la place avec le NDK (C/C++).

+0

Le but est d'éviter Java, mais de ne pas payer trop de grosse taille et de pénalité de performance. Les minimiseurs de code tels que ProGuard peuvent réduire l'empreinte de l'environnement d'exécution, mais ne peuvent pas l'éliminer complètement. Aussi, autant que je voudrais éviter Java, j'aimerais encore plus éviter C/C++. – Marko

+1

J'utiliserais Scala. La taille est correcte avec Proguard, ce n'est pas Java et c'est aussi rapide que Java (pas comme JRuby, Mirah, Jython, etc.). – soc

+6

FYI Mirah est un langage compilé sur la JVM et peut produire des fichiers '.class' ou' .java'. Il n'a pas besoin d'un interpréteur ou d'un runtime séparé et n'a actuellement aucune bibliothèque standard, il est donc aussi rapide que Java - comme Scala. – BaroqueBobcat

1

Xtend dispose d'une bibliothèque super mince (100kb) qui délègue directement au JDK et à la goyave.