Java 9 -Introdução ao JShell / Projeto Kulla

Há dois anos atrás foi lançado oficialmente pela  Oracle uma grande atualização  na linguagem de programação java. Mas os trabalhos  que trazem melhorias e novidades para a linguagem  não pararam , pois  durante esse tempo desenvolvedores  java vem se dedicando para o aperfeiçoamento da plataforma.

O Java 9 esta previsto para chegar  ao mercado em setembro de 2016. Esta próxima versão  do java traz consigo um recurso muito importante para a plataforma, uma  ferramenta de linha de comando  cujo nome é  Jshell = Java + REPL (Read-Eval-Print-Loop).

 Eval-Print -Loop (REPL)  é uma ferramenta simples de programação interativa onde loops continuamente são capazes de ler, avaliar e exibir as entradas digitadas pelo usuário dando mais interatividade e exigindo menos esforço do mesmo.

Na linguagem Java já existem algumas ferramentas  de terceiros baseadas em  REPL, incluindo Java REPL e BeanShell. Porem no java 9 o Jshel será a ferramenta oficial da linguagem baseada em REPL.

O que significa Kulla ?

Kulla foi o nome escolhido pela equipe de desenvolvimento do java para o projeto  da ferramenta Jshel. A palavra Kulla é o nome de um Deus que é considerado o criador da mitologia mesopotâmica.

Introdução ao Jshel:

O Jshel é uma ferramenta de linha de comando que provê recursos que facilitaram a interatividade dos desenvolvedores e iniciantes na linguagem de programação Java. Podemos considera esta ferramenta como um novo console interativo proposto para a versão 9 do java. Com  este novo recurso teremos a  possibilidade em executar  instruções e códigos Java no estado Jshel, sem a necessidade  de coloca-los em um  projeto ou métodos, ou seja as variáveis não precisam ocorrer dentro de uma classe, e métodos não precisam ocorrer dentro de uma classe ou interface.

O que o Jshel nao ira fornecer :

O foco desta ferramenta não é torna o java uma nova linguagem interativa, todas as entradas no console Jshel deverão ser de acordo com a sintaxe do java, ou seja só serão aceitáveis códigos java validos(O JShell irá fornecer automaticamente esse contexto envolvente – o “embrulho”).

Segundo o Open JDK, esta fora do escopo da ferramenta: interfaces gráficas, suporte depurador e funcionalidade IDE-like.

O motivo que levou a criação da ferramenta Jshel:

“O feedback imediato é muito importante quando estamos aprendendo uma linguagem de programação”.

Muitos índices que classificam o uso das diversas linguagens de programação concordam que o java é uma das linguagem de programação mais utilizada no mundo. Com base nesses indicies a Oracle vem notando que há alguns anos as escolas/instituições estão deixando de adota o java como uma linguagem de  ensino para iniciantes em programação, pois como o java não tem uma forma de programar baseado em REPL, criar um simples “Hello, World” para quem esta iniciando na linguagem Java acaba dando uma impressão de algo muito complexo.

Com isto, outras linguagem como Ruby, Phyton , Scala, vem sendo empregadas como linguagem de ensino para iniciantes, devido a disponibilidade de  ferramentas  integradas com REPL, tornando um “Hello, Word” muito mais simples e empolgante para quem esta dando os primeiro passo em programação.

Com o intuito em superar esta situação a Oracle e os desenvolvedores java pensaram em uma maneira para atribuir o PERL na linguagem, com isto surgiu o Projeto Kulla que deu origem para a criação  da ferramenta Jshel(Java + PERL).  Vale ressaltar que  a ferrementa JShell REPL não é apenas para os iniciantes. Os desenvolvedores da linguagem java podem utilizar a ferramenta para fazer testes ou uma verificação rápida em alguma lógica de programação complexa.

Forma Normal de Imprimir um “Alo, Mundo” no java:

public class OlaMundo {

public static void main (String []args){

System.out.println(“Ola, Mundo”);

}

}

Imprimindo um “Ola, Mundo” com o Jshel:

Apos abri o Jshel basta digitar depois da seta -> :

-> System.out.println(“Alo Mundo”);

Sera exibido: Alo Mundo

Como você pode nota no fim da instrução acima temos um ponto e virgula, e se eu te conta que :utilizando a ferramenta Jshel o ponto e virgula se torna opcional ? é isso mesmo que você esta lendo.

Observe a instrução baixo, o  resultado sera o mesmo que foi exibido acima, porem sem o ponto e virgula.

-> System.out.println(“Alo Mundo”)

Sera exibido:  Alo Mundo

OPERAÇÕES MATEMÁTICAS:

Forma Normal para soma dois números no java 8:

public class OlaMundo {

public static void main (String []args){

int a = 2;

int b = 2;

int soma = a + b;

System.out.println(soma);

}

}

Somando dois numero ultilizando a ferramenta Jshel:

-> 2 + 2
| Expression value is: 4
| assigned to temporary variable $1 of type int

Simples não é ? notem como esta ferramenta vai facilitar a vida dos desenvolvedores e de todos que estão iniciando na linguagem de programação  java.

Possibilidade para acesso a rede com Jshel:

Dentro da ferramenta JShell podemos fazer acessoa a rede, ou seja não ficamos limitados  a nossa máquina, isso abre algumas oportunidades interessantes. Por exemplo, pense em usá-lo como um terminal para comunicar com o servidor, se conectar ao seu servidor remotamente e controlar alguns parâmetros a partir do exterior. Outra opção seria consultar seu banco de dados, e as possibilidades são realmente infinitas.

Por fim:

Para mais informações sobre esta nova ferramenta que esta por vim no java 9, o Rodrigo Turini instrutor da Caelum, criou um artigo em português bem explicado demonstrando na pratica algumas funcionalidades utilizando o Jshel:  java 9 na pratica.

Procurei fazer apenas uma pequena demonstração do que esta por vim nas próximas versões do java. Como estudante da plataforma estou muito ansioso para ver este grande lançamento do java 9.

Meu Canal do Youtbe : DigaoTutoriais

REFERENCIAS :

JAVA 9: O QUE VEM POR AÍ?

OPEN JDK – JDK 9

Java 9 : premier aperçu de JShell L’implémentation de REPL

JEP 222: jshell: The Java Shell (Read-Eval-Print Loop)

7 Comentários

  1. Otimo Artigo DigaoTutoriais, boa iniciativa lançar as novidades em português . Sucesso

    Curtido por 1 pessoa

    1. Obrigado, Eduardo. Tem muito conteudo em inglês, daqui a dois dias lançarei outro.

      Curtido por 1 pessoa

  2. Java 9 e novidades para facilitar a vida de quem desenvolve… O JShell vai ser um grande facilitador na hora de desenvolver.
    Parabéns pelo artigo.

    Curtido por 1 pessoa

    1. Obrigado grande Ronaldo, Pelo seu feedback, com certeza, estou ancioso aguardando este lançamento.

      Curtido por 1 pessoa

  3. Alexandre Santos · · Responder

    Java 9 promete muitas novidade para a linguagem. Otimo artigo 😀

    Curtido por 1 pessoa

  4. Eder Miranda Ferreira Leite · · Responder

    Muito bom mesmo seu artigo, parabéns pelo blog, e obrigado por citar o meu como referência. Grande abraço!

    Curtir

Deixe um comentário