Движок Javascript с хорошей совместимостью с JVM и CLR - PullRequest
4 голосов
/ 13 октября 2010

Из-за огромных ресурсов, стоящих за ним, Javascript быстро становится предпочтительным языком сценариев для приложений, особенно для тех, у которых есть веб-интерфейс. У меня есть приложение, которое требует расширяемости как на передней, так и на задней панели. Javascript или тонкая оболочка, такая как CoffeeScript, кажется отличным выбором, ориентированным на будущее.

Проблема с использованием Javascript в качестве цели заключается в совместимости с существующими серверными библиотеками. V8 требует пользовательского кода C ++. Я бы предпочел использовать обширные ресурсы библиотек классов JDK / .NET и наш код, который предоставляет API-интерфейсы для этих языков.

Существуют ли какие-либо активные усилия, которые позволили бы пользователям вызывать библиотеки JVM / CLR из Javascript, аналогично элегантности ссылок IronPython-CLR и Jython-JVM?

Альтернатива - использовать что-то вроде IronPython / Jython, но оба проекта имеют лишь небольшую часть ресурсов, посвященных Javascript, и это делает историю расширения на стороне клиента очень сложной.

Кто-нибудь успешно сталкивался с подобными проблемами?

Ответы [ 3 ]

1 голос
/ 13 октября 2010

Вы пытались использовать интерпретатор Javascript, который поставляется с JDK 6 (Rhino)?

Я имею в виду, доставка с ядром JDK довольно совместима, если вы спросите меня. Вы можете получить доступ к службам Java из контекста Javascript, а со стороны Java можно вводить объекты в глобальный контекст Javascript. Также возможно (с помощью ScriptEngine) использовать код Javascript в качестве реализации интерфейса Java.

Теперь, конечно, он не совместим с CLR.

0 голосов
/ 01 мая 2017

Существуют ли какие-либо серьезные усилия, которые позволили бы пользователям вызывать библиотеки JVM / CLR из Javascript

Если вы не возражаете против использования TypeScript, попробуйте 1c ,которые также позволяют проверку типов и автозаполнение для библиотек JVM.

0 голосов
/ 16 июня 2012

Компиляторы JavaScript поставлены в реализация MS CLI с самого начала, и в реализации Java Sun с 1.6.0.

MS эффективна, актуальна и использует DLR, поэтому она взаимодействует с другими реализациями динамических языков, такими как IronPython.

Sun's основана на оставленной в 1998 году Mozilla "Rhino". Если вы должны иметь согласованность или должны иметь открытый исходный код, вы можете запустить Rhino в MS .net через IKVM.

Подробнее см .:

Есть ли порт движка Rhino JavaScript для .NET

Войны веб-браузеров привели к их реализации JS (на C ++) Быть радикально быстрее и современнее, чем все остальные. TraceMonkey в Mozilla не имеет привязок к Java. Но у Google V8 (Chrome, Android; все равно быстрее).

Если вы готовы к некоторой боли:

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

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

Или вы можете использовать MessagePack RPC для вызова node.js (Google V8).

...