Pull to refresh

Doppio — JVM, Компилятор и дизассемблер в JavaScript

JavaScriptJava
Translation
Original author: Devon Govett
На сегодняшний день мы не испытываем недостатка в прекрасных вещах, которые написаны на JavaScript. Да и реализации JVM в JavaScript мы уже видели. Теме не менее, Doppio представляет собой наиболее полную и активно развивающуюся JVM.



По большому счёту Doppio — это проект, который позволяет выполнять Java-код прямо в браузере без плагинов. Он включает в себя реализацию Java Virtual Machine (JVM), заключающуюся в браузерном компиляторе и дизассемблере байт-кода. Проект находится ещё в стадии разработке, нужно ещё хорошо поработать над производительностью, прежде чем его можно было бы использовать в разработке. Но уже сегодня поддерживается:

  • Все 200 opcode-ов
  • Точная эмуляция примитивных типов Java, включая 64-битные long
  • Generics
  • Большая часть Reflection API
  • Работа с файлами и стандартный ввод/вывод
  • Основные JDK-библиотеки, такие как String, Pattern и HashMap


Вроде как демо лучше всего работает в Chrome, но оно должно хорошо работать в любом браузере, который поддерживает локальное хранение и типизированные массивы.

Но почему Java?


Вы должно быть сейчас думаете: «Но зачем мне нужно писать на Java для браузера?» Но имея браузерную JVM, мы получаем намного больше чем просто Java, не забудьте что существует множество других языков, компилируемых в JVM-байткод, включая как уже существующие языки — Ruby (JRuby), Python (Jython) и JavaScript (Rhino), так и новые языки, такие как Scala, Clojure и многие другие.

С этой точки зрения JVM в браузере может использоваться для работы с множеством языков и существующих программ прямо в браузере без ручного перевода. Однако, прежде чем это будет возможно, предстоит много работы по оптимизации. Сейчас Doppio интерпретирует байткод на лету, но авторы напоминают, что они хотят перехода к более компилируемому подоходу. Также как и Emscripten компилирует LLVM-байткод в JavaScript, Doppio хочет делать аналогичное для JVM-кода — тогда бы это была очень мощная утилита.

Вы можете найти информацию о проекте Doppio тут, посмотреть задокументированные примеры или страничку на GitHub. Ну, и конечно же попробуйте демо.
Tags:JavaScriptJVMDoppioкомпилятордизассемблер
Hubs: JavaScript Java
Total votes 29: ↑26 and ↓3 +23
Views8.5K

Comments 23

Only those users with full accounts are able to leave comments. Log in, please.

Popular right now

Java Developer
to 300,000 ₽АвтомаконRemote job
JavaScript разработчик
from 180,000 ₽SportrecsМоскваRemote job
Java developer
from 150,000 to 300,000 ₽EmphasoftСанкт-Петербург
Разработчик java
from 300,000 ₽Банк «Открытие»Москва
Java Web разработчик
from 35,000 to 150,000 ₽Морчека ТехнолоджиСевастопольRemote job

Top of the last 24 hours