- PVSM.RU - https://www.pvsm.ru -
На сегодняшний день мы не испытываем недостатка в прекрасных вещах, которые написаны на JavaScript. Да и реализации JVM в JavaScript мы уже видели [1]. Теме не менее, Doppio [2]представляет собой наиболее полную и активно развивающуюся JVM.
По большому счёту Doppio — это проект, который позволяет выполнять Java-код прямо в браузере без плагинов. Он включает в себя реализацию Java Virtual Machine (JVM), заключающуюся в браузерном компиляторе и дизассемблере байт-кода. Проект находится ещё в стадии разработке, нужно ещё хорошо поработать над производительностью, прежде чем его можно было бы использовать в разработке. Но уже сегодня поддерживается:
Вроде как демо [3] лучше всего работает в Chrome, но оно должно хорошо работать в любом браузере, который поддерживает локальное хранение и типизированные массивы.
Вы должно быть сейчас думаете: «Но зачем мне нужно писать на Java для браузера?» Но имея браузерную JVM, мы получаем намного больше чем просто Java, не забудьте что существует множество других языков, компилируемых в JVM-байткод, включая как уже существующие языки — Ruby (JRuby), Python (Jython) и JavaScript (Rhino), так и новые языки, такие как Scala, Clojure и многие другие [4].
С этой точки зрения JVM в браузере может использоваться для работы с множеством языков и существующих программ прямо в браузере без ручного перевода. Однако, прежде чем это будет возможно, предстоит много работы по оптимизации. Сейчас Doppio интерпретирует байткод на лету, но авторы напоминают, что они хотят перехода к более компилируемому подоходу. Также как и Emscripten компилирует LLVM-байткод в JavaScript, Doppio хочет делать аналогичное для JVM-кода — тогда бы это была очень мощная утилита.
Вы можете найти информацию о проекте Doppio тут [5], посмотреть задокументированные примеры [6] или страничку на GitHub [2]. Ну, и конечно же попробуйте демо [3].
Автор: DreamWalker
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/java/16496
Ссылки в тексте:
[1] уже видели: http://badassjs.com/post/12648021003/bicavm-a-jvm-implementation-in-javascript
[2] Doppio : https://github.com/int3/doppio
[3] демо: http://int3.github.com/doppio/
[4] многие другие: http://en.wikipedia.org/wiki/List_of_JVM_languages
[5] тут: http://int3.github.com/doppio/about.html
[6] примеры: http://int3.github.com/doppio/docs/runtime.html
Нажмите здесь для печати.