Categorias

Programador Cria Máquina Virtual Java… Em Javascript!

Java ou Javascript? BicaVM é Java com Javascript!
Todo mundo acaba aprendendo mais cedo ou mais tarde que Java e Javascript são duas linguagens completamente diferentes. Mas Artur Ventura resolveu confundir novamente e criou uma Máquina Virtual capaz de rodar código Java usando apenas javascript. BicaVM é o resultado de seis meses de programação pesada e já está funcionando.

A linguagem Java é compilada, mas não em código nativo e sim em um bytecode especial que roda em uma máquina virtual. O principal entrave para fazê-la rodar em outras linguagens é a velocidade de execução. Com o aumento absurdo de performance dos atuais navegadores em processar javascript, era só uma questão de dedicação de um programador para que algo assim fosse concebido.

Arthur Ventura conseguiu implementar uma grande parte do padrão JVM usando apenas JavaScript. BicaVM consegue rodar 60% de bytecode, mas ainda não foi otimizada. A Máquina Virtual consegue rodar em iPad/iPhone e suporta uma interface JNI para acessar o DOM.

O triunfo de Ventura é apenas um prova de conceito sem uso prático. Em suas palavras:

Eu acredito que o navegador deveria ter algum tipo de máquina virtual, na qual uma das linguagens deveria ser o JavaScript.

(…) Ter uma máquina virtual no navegador tem alguns efeitos colaterais interessantes. O primeiro é que você consegue ter um sandbox automaticamente, de forma que você pode autorizar a execução de código externo não-confiável em sua página sem problema nenhum. Você também pode congelar a máquina virtual rodando no cliente e enviar de volta para o servidor, permitindo que você tenha de uma maneira muito fácil a implementação de persistência de estado do navegador de forma independente.

.