IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

GraalVM : Oracle annonce une machine virtuelle polyglotte
Conçue pour supporter plusieurs langages sans sacrifier la performance

Le , par Coriolan

524PARTAGES

9  0 
Oracle vient de lancer GraalVM 1.0, une machine virtuelle universelle conçue pour supporter plusieurs langages, et en même temps, tourner avec la même performance, outils et configuration.

« GraalVM est une machine virtuelle universelle pour exécuter des applications écrites en JavaScript, Python, Ruby, R, les langages de JVM comme Java, Scala, Kotlin, et les langages LLVM comme C et C++, » peut-on lire sur le site du projet.

« GraalVM supprime l’isolation entre les langages de programmation et permet l’interopérabilité dans un environnement runtime. Elle peut s’exécuter seule ou bien dans le contexte du OpenJDK, Node.js, Oracle Database, ou MySQL. »


Selon Oracle, les machines virtuelles actuelles fournissent une haute performance d’exécution de programmes seulement pour un langage spécifique ou un nombre limité de langages. En conséquence, la compilation, la gestion de mémoire et les outils sont maintenus séparément pour différents langages, ce qui contredit le principe DRY (don’t repeat yourself). Cette réalité nuit non seulement aux exécutants de machines virtuelles, mais aussi aux développeurs qui doivent gérer plusieurs facteurs non uniformes, notamment la performance et la configuration. De plus, faire communiquer des programmes écrits en différents langages requiert une logique coûteuse de sérialisation et désérialisation.

C’est pourquoi Oracle a entrepris de résoudre ce problème depuis des années maintenant, à vrai dire, le projet GraalVM a existé pendant longtemps, mais ce n’est que maintenant qu’il est prêt pour une utilisation générale après l’annonce de cette version 1.0.

« GraalVM fournit une haute performance pour les langages individuels et une interopérabilité sans frais supplémentaires pour créer des applications polyglottes. Au lieu de convertir des structures de données aux limites des langages, GraalVM permet aux objets et tableurs d’être utilisés directement par des langages étrangers. »

Un exemple des possibilités offertes inclut l’accès à une fonctionnalité d’une bibliothèque Java depuis du code Node.js ; ou appeler un programme statistique de Python depuis Java ; ou utiliser R pour créer un graphe SVG avec des données gérées par un autre langage.

« Pour les langages JVM, GraalVM offre un mécanisme pour créer des images natives dotées d’un démarrage instantané et une utilisation faible de la mémoire. Le processus de génération d’image exécute une analyse statique pour trouver tout code susceptible d’être atteint depuis la méthode Java principale et effectue par la suite une compilation anticipée (AOT). Le résultat natif qui en résulte contient le programme entier en code machine pour une exécution immédiate. Il peut être lié avec d’autres programmes natifs et peut optionnellement inclure le compilateur GraalVM pour le support d’une compilation à la volée afin d’exécuter tout langage GraalVM en haute performance. »

Selon Oracle, un avantage majeur de l’écosystème GraalVM est d’offrir des outils qui supportent tout langage et applicables pour tous les déploiements GraalVM. L’installation de base fournit aux développeurs un débogueur, un profiler (profilage de code) et un heap viewer. Oracle encourage les développeurs tiers à utiliser l’instrumentation API ou les API d'implémentation de langages pour enrichir davantage l’écosystème GraalVM.

« Cette première version n’est qu’un début. Nous travaillons pour améliorer tous les aspects de GraalVM, en particulier le support de Python, R et Ruby. GraalVM est écosystème ouvert et nous encourageons tout le monde à créer dessus leurs propres langages ou outils. Nous voulons faire de GraalVM un projet collaboratif permettant une exécution standardisée des langages et un groupe d’outils riches, » a écrit Oracle.

Source : blog Oracle

Et vous ?

Trouvez-vous un intérêt pour GraalVM ?
Avez-vous déjà développé une application qui requiert une interopérabilité entre plusieurs langages ?

Voir aussi :

EdgeDB : un nouveau système de gestion de base de données relationnel-objet open source, bientôt disponible en préversion technologique
Microsoft présente Azure Sphere, sa solution pour sécuriser l'IdO qui comporte un système d'exploitation basé sur un noyau Linux personnalisé

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de foxzoolm
Membre habitué https://www.developpez.com
Le 17/04/2020 à 23:05
bon en gros c'est le remplaçant de HotSpot... et ca a l'air d'etre une surcouche LLVM...

so what ?
Si je fais du C like c'est pas pour qu'il se retrouve dans un truc AOT/JIT/GC non ?
au pire on a JNI...
python, javascript etc (java like) on avait pas des truc genre jython, rhinojs/nashorm ?
meme pour les AstroKlingonBol ce n'est pas tres compliquer de generer du pcode VM hotspot

En interne, on a essayé de pas trop être schizophrène et de ne pas s’éparpiller dans pléthore de langage.
(on a eu la chance de partir sur java... mais avec une longue histoire d'amour avec lazarus/fpc)

et si c'est pour sortir du "wasm" (parait) pfff...
gros doute de l’intérêt (et de la protection des recettes maison)

de toute manière, on ne fait plus que du web sauce ws/ajax (php ? c'est quoi ? jamais entendu parler)
(un bete serveur de fichier avec des "servlets" json)

pour les jeux ?
"graalvm s'approche des prefs du C"... dixit Macron...

porter un jeu C like vers Android ?
ouch...

a++
0  1