"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Cuaderno Jupyter para Java

Cuaderno Jupyter para Java

Publicado el 2024-11-06
Navegar:542

El poderoso de Jupyter Notebook

Jupyter Notebooks es una excelente herramienta, desarrollada originalmente para ayudar a los científicos e ingenieros de datos a simplificar su trabajo con datos utilizando el lenguaje de programación Python. De hecho, la naturaleza interactiva de los cuadernos los hace ideales para ver rápidamente los resultados del código sin configurar un entorno de desarrollo, compilar, empaquetar, etc. Esta característica ha sido crucial para la adopción en ciencia de datos, aprendizaje automático y modelado estadístico, donde las habilidades de desarrollo eran menos esenciales que la experiencia en manipulación de datos.

Ventajas

A continuación se detallan algunas de las ventajas del cuaderno Jupyter

  1. Desarrollo interactivo: Los portátiles permiten a los desarrolladores escribir código en pequeños fragmentos, probarlos inmediatamente y visualizar los resultados. Este flujo de trabajo interactivo promueve una iteración y depuración más rápidas, ideal para la exploración de datos, el desarrollo de algoritmos y la creación rápida de prototipos.
  2. Visualizaciones enriquecidas: normalmente, Notebook está integrado con potentes bibliotecas de visualización que pueden mostrar diagramas, gráficos y otros resultados visuales en línea.
  3. Documentación y código juntos: Los portátiles combinan código ejecutable con celdas de rebajas, lo que permite a los desarrolladores documentar su código, explicar la lógica, etc., creando bases de código más legibles y fáciles de mantener.
  4. Colaboración: al compartir cuadernos, los miembros del equipo pueden revisar y ejecutar código sin configurar un entorno de desarrollo, lo que facilita la colaboración, especialmente en equipos multifuncionales que involucran partes interesadas no técnicas.
  5. Reproducibilidad: Los cuadernos se pueden volver a ejecutar de arriba a abajo, lo que garantiza que cualquier análisis o prueba se pueda reproducir de forma consistente. Esto es crucial para depurar, probar o presentar resultados.

Resumiendo podemos decir que

Los portátiles Jupyter agilizan el proceso de desarrollo, desde la exploración inicial hasta el código listo para producción, ofreciendo flexibilidad y comentarios en tiempo real.

Rompe la barrera de Python

Teniendo en cuenta las ventajas que ofrecen los portátiles Jupyter, sería fantástico que los desarrolladores de software utilizaran este enfoque de portátiles para desarrollar, por ejemplo, PRUEBAS DE CASOS DE USO para proyectos o proporcionar CÓMO INTERACTIVO.

La pregunta aquí es:

¿ES POSIBLE UTILIZAR UN CUADERNO JUPYTER PARA PROGRAMAR UN LENGUAJE DISTINTO DE PYTHON❓?

La respuesta es ¿SÍ?.

La arquitectura de Júpiter

Las herramientas de Jupyter han sido diseñadas para admitir múltiples lenguajes de programación a través del concepto Kernel; consulte el diagrama a continuación:

Jupyter Notebook for Java

El kernel es la forma en que el servidor de notebook Jupyter evalúa bloques de código escritos por el usuario dentro del documento del notebook (.ipynb), por lo que es suficiente tener un kernel que pueda evaluar el código del lenguaje de programación de su elección para tener Es compatible con el cuaderno Jupyter.
Por supuesto, es fácil deducir que todos los lenguajes de programación potenciales que un kernel Jupyter puede admitir deben admitir la función de bucle de lectura, evaluación e impresión (REPL).

La pregunta es:

¿HAY JUPYTER KERNEL DISTINTO DE PYTHON ONE❓?

La respuesta es ¿Sí?.

Últimamente he estado trabajando en Langgraph4J, que es una implementación Java del más famoso Langgraph.js, que es una biblioteca de Javascript utilizada para crear flujos de trabajo de agentes y múltiples agentes por Langchain. Una nota interesante es que [Langchain.js] utiliza portátiles Javascript Jupyter con tecnología de DENO Jupiter Kernel para implementar y documentar procedimientos.
Entonces, me enfrenté a un dilema sobre cómo usar (o posiblemente simular) el mismo enfoque en Java y, sin muchas esperanzas, comencé a buscar un Jupyter Kernel que soportara Java considerando que, a partir de la versión JDK 9, estaba la introducción de JShell que habilitó REPL para Java.

El núcleo de Java Jupyter

Después de un poco de investigación (y la extraña idea de intentar lanzarme a una implementación de bricolaje), llegué a rapaio-jupyter-kernel, que es un Jupyter Kernel que admite Java. El proyecto dice:

Kernel Jupyter para lenguaje Java basado en JShell. Implementa la especificación de mensajes de Jupyter versión 5.4 y requiere Java = 22.

Es asombroso; Estoy empezando a usarlo y ¡GUAU!?. Echa un vistazo a algunas de sus características, a continuación te resumo las más representativas:

Características del portátil Java Jupyter


Puedes escribir 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))

Complejo[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 magicos

Además del código Java, una celda puede contener comandos especiales implementados por el kernel. Estos se llaman códigos mágicos y hay dos tipos: líneas mágicas y células mágicas.
Líneas mágicas son ​​líneas que tienen el prefijo %. Después del prefijo le sigue el comando mágico y los parámetros opcionales. A continuación se muestra un ejemplo de línea mágica:

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

| registro complejo

Interpolación de comandos mágicos

A veces es necesario ejecutar un comando mágico de una manera más dinámica. Esto se puede hacer usando interpolación mágica.
La interpolación mágica es la interpolación de contenido marcado que comienza con \{ y termina con }. Cualquier contenido decorado con esos marcadores se evalúa en jshell y el resultado se transforma en una Cadena que reemplaza el contenido decorado en el comando mágico.

String version = "1.0.2";

 

Declaración de liberación Este artículo se reproduce en: https://dev.to/bsorrentino/jupyter-notebook-for-java-3cej?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3