2010-10-13 22 views
4

En raison des énormes ressources disponibles, Javascript semble rapidement devenir le langage de choix des applications, en particulier celles avec une interface web. J'ai une application qui nécessite une extensibilité à la fois sur le front et le backend. Javascript, ou un wrapper mince comme CoffeeScript, semble être un excellent choix orienté vers l'avenir.Un moteur Javascript avec une bonne interopérabilité avec JVM et CLR

Le problème que j'ai avec l'utilisation de Javascript comme cible est l'interopérabilité avec les bibliothèques côté serveur existantes. V8 nécessite un code C++ personnalisé. Je préférerais de beaucoup tirer parti des vastes ressources des bibliothèques de classes JDK/.NET et de notre code qui expose les API à ces langages.

Y a-t-il des efforts robustes qui permettraient aux utilisateurs d'appeler des bibliothèques JVM/CLR à partir de Javascript, similaires à l'élégance des liens IronPython-CLR et Jython-JVM? L'alternative est d'utiliser quelque chose comme IronPython/Jython, mais les deux projets ont seulement une fraction des ressources consacrées à Javascript et cela rend l'histoire d'extensibilité côté client très difficile.

Est-ce que quelqu'un a déjà rencontré des problèmes similaires?

+0

Cela peut être hors de question, mais vous pouvez utiliser .NET pour compiler JScript à la volée, tirer parti à la fois du langage et du framework .NET. http://msdn.microsoft.com/en-us/library/49zhkzs5.aspx –

Répondre

1

Avez-vous essayé d'utiliser l'interpréteur Javascript fourni avec JDK 6 (Rhino)? Je veux dire, l'expédition avec le noyau JDK est assez interopérable, si vous me demandez. Vous pouvez accéder aux services Java à partir du contexte Javascript, et du côté Java, il est possible d'introduire des objets dans le contexte global Javascript. Il est également possible (avec le script ScriptEngine) d'utiliser le code Javascript comme implémentation d'une interface Java.

Maintenant, ce n'est pas du tout interopérable avec le CLR, bien sûr.

0

Les compilateurs JavaScript ont livré en l'implémentation MS CLI depuis le début, et dans l'implémentation Sun Java depuis la version 1.6.0. MS est efficace, actuel et utilise DLR, de sorte qu'il interopère avec d'autres implémentations de langages dynamiques, tels que IronPython.

Sun's est basé sur le Mozilla "Rhino" de 1998 abandonné. Si vous devez avoir une cohérence ou devez avoir une source ouverte, vous pouvez exécuter Rhino sur MS.net via IKVM.

Pour plus de détails, voir:

Is there a port of the Rhino JavaScript engine for .NET

La guerre des navigateurs web ont conduit à leur mise en œuvre JS (en C++) radicalement plus rapide & plus à jour que tous les autres. TraceMonkey de Mozilla n'a aucune liaison Java. Mais Google V8 (Chrome, Android, plus rapide de toute façon) fait.

Si vous êtes prêt pour une certaine douleur:

http://code.google.com/p/jav8/

http://rbackhouse.blogspot.com/2011/03/using-google-v8-javascript-engine-in.html

Ou vous pouvez utiliser MessagePack RPC pour appeler dans Node.js (Google V8).

0

Y a-t-il des efforts solides qui permettraient aux utilisateurs d'appeler les bibliothèques JVM/CLR de Javascript

Si vous ne me dérange pas en utilisant tapuscrit, essayez 1c, qui permettent la vérification de type également et saisie semi-automatique pour la JVM bibliothèques.