Le projet Graal pour la mise en oeuvre d'un compilateur dynamique pour Java semble profiter d'une conjoncture favorable. Celui-ci pourrait produire un code d'une excellente qualité sans compromettre le temps de compilation, ni monopoliser trop de mémoire dans la machine virtuelle Java. Les participants au groupe de discussion OpenJDK - le groupe fonctionne par messagerie électronique - parmi lesquels on trouve des représentants d'Oracle, plaident en faveur du projet. Leur volonté : explorer l'utilisation d'un compilateur dynamique dans une machine virtuelle Java native comme HotSpot, ou méta-circulaire comme Maxine. Sur le site qu'Oracle réserve au projet Graal, on peut lire que la machine virtuelle Maxine est une plate-forme de prochaine génération écrite en Java, qu'elle est compatible avec des environnements de développement intégrés (IDE) Java modernes ainsi qu'avec le Java Development Kit classique, et qu'elle possède une architecture modulaire.

Le compilateur Graal, basé sur le code de Maxine, servirait de point de départ au projet de compilateur dynamique. « Ce qui est clair, c'est que Graal va profiter de la bonne capacité de compilation de Java », a déclaré Al Hilwa, analyste chez IDC. « Il existe un mouvement en faveur du mode natif, que l'on doit à bien des égards aux outils de développement iOS d'Apple, lesquels reposent sur un modèle de compilation en natif pour Objective-C. Pendant longtemps, la balance penchait plutôt du côté des langages pour machines virtuelles comme Java. Mais le succès des terminaux sous iOS a commencé à inverser la tendance. Dans ce contexte, Java doit améliorer ses performances pour les rapprocher de ce que l'on arrive à faire avec les compilateurs natifs, mais aussi évoluer en terme d'intégration avec du code natif. »

Un compilateur agnostique bytecode pour la JVM

Hari Gottipati, principal architecte Java de l'Apollo Group, une entité privée émanant de l'Université de Phoenix, a salué le compilateur Graal et les efforts accomplis par Oracle pour la JVM, ainsi que l'impact potentiel sur le codage Java. « Imaginez un codage en Java, une compilation avec un compilateur écrit en Java, enfin l'exécution par la machine virtuelle Java elle aussi écrite en Java - il y a du Java tout au long de la chaîne. C'est la voie d'une intégration parfaitement transparente entre l'application et la machine virtuelle », a déclaré Hari Gottipati, également membre du Groupe d'utilisateurs Phoenix Java. « Je suis sûr que toute la communauté Java va être très emballée par le projet. »

Lors du JVM Language Summit organisé par Oracle en juillet dernier, Graal a déjà fait l'objet d'une présentation intitulée « Graal, un Compilateur Agnostique Bytecode pour la JVM » par Thomas Wuerthinger, de Oracle Labs. En plus de réfléchir à Graal, Oracle travaille à faire converger la machine virtuelle Java JRockit avec HotSpot, tombé dans l'escarcelle d'Oracle lors du rachat de Sun début 2010. Ces travaux devraient normalement être complétés par la sortie d'un JDK 8 en 2013.