"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Caderno Jupyter para Java

Caderno Jupyter para Java

Publicado em 2024-11-06
Navegar:606

O poderoso do Jupyter Notebook

Jupyter Notebooks são uma excelente ferramenta, originalmente desenvolvida para ajudar cientistas e engenheiros de dados a simplificar seu trabalho com dados usando a linguagem de programação python. Na verdade, a natureza interativa dos notebooks os torna ideais para ver rapidamente os resultados do código sem configurar um ambiente de desenvolvimento, compilação, empacotamento e assim por diante. Esse recurso foi crucial para adoção em ciência de dados, aprendizado de máquina e modelagem estatística, onde a habilidade de desenvolvimento era menos essencial do que a experiência em manipulação de dados.

Vantagens

Abaixo estão algumas das vantagens do notebook Jupyter

  1. Desenvolvimento interativo: Notebooks permitem que os desenvolvedores escrevam códigos em pequenos pedaços, testem-nos imediatamente e visualizem os resultados. Este fluxo de trabalho interativo promove iteração e depuração mais rápidas, ideal para exploração de dados, desenvolvimento de algoritmos e prototipagem rápida.
  2. Visualizações ricas: normalmente, o Notebook é integrado a bibliotecas de visualização poderosas que podem exibir plotagens, gráficos e outras saídas visuais inline.
  3. Documentação e código juntos: Notebooks combinam código executável com células markdown, permitindo que os desenvolvedores documentem seu código, expliquem a lógica, etc., criando bases de código mais legíveis e fáceis de manter.
  4. Colaboração: Ao compartilhar notebooks, os membros da equipe podem revisar e executar código sem configurar um ambiente de desenvolvimento, facilitando a colaboração, especialmente em equipes multifuncionais envolvendo partes interessadas não técnicas.
  5. Reprodutibilidade: Os notebooks podem ser executados novamente de cima para baixo, garantindo que qualquer análise ou teste possa ser reproduzido de forma consistente. Isso é crucial para depuração, teste ou apresentação de resultados.

Resumindo podemos dizer que

Os notebooks Jupyter simplificam o processo de desenvolvimento, desde a exploração inicial até o código pronto para produção, oferecendo flexibilidade e feedback em tempo real.

Quebre a barreira do Python

Considerando as vantagens que oferecem os notebooks Jupyter, seria ótimo para os desenvolvedores de software usarem essa abordagem de notebook para desenvolver, por exemplo, TESTES DE CASO DE USO para projetos ou fornecer COMO FAZER INTERATIVO.

A questão aqui é:

É POSSÍVEL USAR UM NOTEBOOK JUPYTER PARA LINGUAGEM DE PROGRAMAÇÃO DIFERENTE DE PYTHON❓?

A resposta é SIM?.

A Arquitetura de Júpiter

As ferramentas Jupyter foram arquitetadas para suportar múltiplas linguagens de programação através do conceito Kernel, veja o diagrama abaixo:

Jupyter Notebook for Java

O kernel é como o servidor do notebook Jupyter avalia blocos de código escritos pelo usuário dentro do documento do notebook (.ipynb), então é suficiente ter um kernel que possa avaliar o código da linguagem de programação de sua escolha para ter é compatível com o notebook Jupyter.
Obviamente, é fácil deduzir que toda linguagem de programação potencial que um kernel Jupyter pode suportar deve oferecer suporte ao recurso Read-eval-print loop (REPL).

A questão é:

EXISTEM JUPYTER KERNEL ALÉM DO PYTHON ONE❓?

A resposta é Sim?.

Ultimamente tenho trabalhado no Langgraph4J, que é uma implementação Java do mais famoso Langgraph.js, que é uma biblioteca Javascript usada para criar fluxos de trabalho de agentes e multiagentes por Langchain. Uma observação interessante é que [Langchain.js] usa notebooks Javascript Jupyter alimentados por um DENO Jupiter Kernel para implementar e documentar instruções.
Então, enfrentei um dilema de como usar (ou possivelmente simular) a mesma abordagem em Java e, sem muita esperança, comecei a procurar um Kernel Jupyter que suportasse Java considerando que, a partir da versão JDK 9, houve a introdução do JShell que habilitou o REPL para Java.

O kernel Java Jupyter

Depois de um pouco de pesquisa (e um pensamento estranho de tentar me lançar em uma implementação DIY), cheguei ao rapaio-jupyter-kernel, que é um kernel Jupyter que suporta Java?. O projeto afirma:

Kernel Jupyter para linguagem Java baseada em JShell. Ele implementa a especificação de mensagem Jupyter versão 5.4 e requer Java = 22.

É incrível; Estou começando a usar e UAU!?. Dê uma olhada em algumas de suas características, abaixo resumi as mais representativas:

Recursos do notebook Java Jupyter


Você pode escrever Java normal.

var result = 2   2;
result

4

// including classes
record Complex(double a, double b) {
    public Complex add(Complex c) {
        return new Complex(a c.a, b c.b);
    }
}
Complex x = new Complex(10,20);
x.add(new Complex(1,1))

Complexo[a=11,0, b=21,0]

// methods can also be implemented
int add(int a, int b) { return a b; }
add(2,3)

5

Comandos mágicos

Além do código Java, uma célula pode conter comandos especiais implementados pelo kernel. Eles são chamados de código mágico e existem dois tipos: linhas mágicas e células mágicas.
Linhas mágicas são linhas prefixadas com%. Após o prefixo é seguido pelo comando mágico e pelos parâmetros opcionais. Abaixo está um exemplo de linha mágica:

// magic line which asks JShell to list the types defined in this notebook in this moment
%jshell /types

| gravar Complexo

Interpolação de comandos mágicos

Às vezes é necessário executar um comando mágico de uma forma mais dinâmica. Isso pode ser feito usando interpolação mágica.
A interpolação mágica é a interpolação do conteúdo marcado que começa com \{ e termina com }. Qualquer conteúdo decorado com esses marcadores é avaliado em jshell e o resultado é transformado em uma String que substitui o conteúdo decorado no comando mágico.

String version = "1.0.2";

 

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/bsorrentino/jupyter-notebook-for-java-3cej?1 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3