segunda-feira, 21 de agosto de 2017

Nashorn: Javascript sobre a JVM

Programar em Java está cada vez mais rápido e simples, desde as mudanças que começaram a surgir na versão 7 do Java, a verbosidade característica da linguagem foi reduzindo e agora no Java 8 alcançamos um nível muito superior com a programação funcional presente na linguagem.

Porém, muitos ainda dizem que estas funcionalidades chegaram um pouco atrasadas na linguagem, e durante este tempo que ainda não tinhamos a programação funcional presente no Java, foram surgindo outras linguagens sobre a JVM que visavam trazer novos paradigmas para os programadores.

Como estamos acompanhando, o Javascript tem tomado cada vez mais conta dos projetos de desenvolvimento mudo afora, principalmente agora ele roda firme e forte no lado do servidor, através de diversos projetos diferentes, sendo a referência maior o Node.js, com isto, novamente o Javascript ganhou o foco, principalmente após a criação da instrução invokedynamic, que permitiu a criação e invocação de métodos durante a execução do programa.

Assim, a comunidade iniciou um novo projeto, o Nashorn, que permite executar Javascript na JVM, dentro de outros programas em Java e também executar Java dentro de Javascript. Pode parecer loucura, mas é muito simples iniciar o desenvolvimento, como vemos abaixo.

A primeira coisa que notamos, é que além de rodar scripts, foi criado um interpretador interativo, onde você digita os comandos e recebe o resultado na hora, similar aos já existentes em Python e Ruby. Para acessa-lo basta digitar o comando jrunscript:



Note que alguns comandos já executam normalmente, como o print, criação de variáveis e também operações aritméticas. Porém, não temos apenas o interpretador interativo, podemos executar diretamente scripts, bastando colocar no prompt jrunscript seuarquivo.js, vejamos um exemplo:


Este script simples apenas imprime alguns números na tela, porém já podemos ver como diversos elementos do Javascript atuam em execução, sendo a saída:


Mas não se limita apenas a operadores básicos da linguagem, como o script roda sobre a máquina virtual Java, ou seja, ele é convertido em bytecodes, também podemos invocar bytecodes já existentes, ou seja, invocar classes presentes na linguagem Java, como este exemplo que invoca a classe FileReader e Scanner, lendo e exibindo as linhas de um arquivo:


Perceba como escrevemos muito pouco código para realizar tarefas interessantes, tudo isso através de uma linguagem familiar e simples, porém com muitos recursos em sua sintaxe.

Nenhum comentário:

Postar um comentário