"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Carnet Jupyter pour Java

Carnet Jupyter pour Java

Publié le 2024-11-06
Parcourir:263

Le puissant de Jupyter Notebook

Les Jupyter Notebooks sont un excellent outil, développé à l'origine pour aider les scientifiques et les ingénieurs des données à simplifier leur travail avec les données à l'aide du langage de programmation Python. En fait, la nature interactive des notebooks les rend idéaux pour visualiser rapidement les résultats du code sans configurer d'environnement de développement, de compilation, de packaging, etc. Cette fonctionnalité a été cruciale pour son adoption dans les domaines de la science des données, de l’apprentissage automatique et de la modélisation statistique, où les compétences en développement étaient moins essentielles que l’expertise en manipulation de données.

Avantages

Vous trouverez ci-dessous quelques-uns des avantages du notebook Jupyter

  1. Développement interactif : les blocs-notes permettent aux développeurs d'écrire du code en petits morceaux, de les tester immédiatement et de visualiser les résultats. Ce flux de travail interactif favorise une itération et un débogage plus rapides, idéal pour l'exploration de données, le développement d'algorithmes et le prototypage rapide.
  2. Visualisations riches : en règle générale, Notebook est intégré à de puissantes bibliothèques de visualisation qui peuvent afficher des tracés, des graphiques et d'autres sorties visuelles en ligne.
  3. Documentation et code ensemble : les blocs-notes combinent du code exécutable avec des cellules de démarque, permettant aux développeurs de documenter leur code, d'expliquer la logique, etc., créant ainsi des bases de code plus lisibles et maintenables.
  4. Collaboration : en partageant des blocs-notes, les membres de l'équipe peuvent réviser et exécuter du code sans configurer d'environnement de développement, ce qui facilite la collaboration, en particulier au sein d'équipes interfonctionnelles impliquant des parties prenantes non techniques.
  5. Reproductibilité : les blocs-notes peuvent être réexécutés de haut en bas, garantissant que toute analyse ou test peut être reproduit de manière cohérente. Ceci est crucial pour le débogage, les tests ou la présentation des résultats.

En résumé, nous pouvons dire que

Les notebooks Jupyter rationalisent le processus de développement, de l'exploration initiale au code prêt pour la production, offrant flexibilité et retour en temps réel.

Brisez la barrière Python

Compte tenu des avantages qu'offrent les notebooks Jupyter, il serait formidable que les développeurs de logiciels utilisent une telle approche de notebook pour développer, par exemple, des TESTS DE CAS D'UTILISATION pour des projets ou fournir des COMMENTAIRES INTERACTIFS.

La question ici est :

EST-IL POSSIBLE D'UTILISER UN CARNET JUPYTER POUR UN LANGAGE DE PROGRAMMATION AUTRE QUE PYTHON❓ ?

La réponse est OUI ?.

L'architecture de Jupiter

Les outils Jupyter ont été conçus pour prendre en charge plusieurs langages de programmation via le concept Kernel, voir le schéma ci-dessous :

Jupyter Notebook for Java

Le noyau est la façon dont le serveur de notebook Jupyter évalue les blocs de code écrits par l'utilisateur dans le document du notebook (.ipynb), il suffit donc d'avoir un noyau capable d'évaluer le code du langage de programmation de votre choix pour avoir il est pris en charge par le notebook Jupyter.
Bien sûr, il est facile de déduire que chaque langage de programmation potentiel qu'un noyau Jupyter peut prendre en charge devrait prendre en charge la fonctionnalité de boucle de lecture-évaluation-impression (REPL).

La question devient :

EXISTE-T-IL UN NOYAU JUPYTER AUTRE QUE PYTHON ONE❓ ?

La réponse est Oui ?.

Dernièrement, j'ai travaillé sur Langgraph4J qui est une implémentation Java du plus célèbre Langgraph.js qui est une bibliothèque Javascript utilisée pour créer des workflows d'agent et multi-agents par Langchain. Il est intéressant de noter que [Langchain.js] utilise des notebooks Javascript Jupyter alimentés par un noyau DENO Jupiter pour implémenter et documenter les procédures.
J'ai donc été confronté à un dilemme sur la façon d'utiliser (ou éventuellement de simuler) la même approche en Java et, sans grand espoir, j'ai commencé à chercher un noyau Jupyter prenant en charge Java étant donné qu'à partir de la version JDK 9, il y avait l'introduction de JShell qui a activé le REPL pour Java.

Le noyau Java Jupyter

Après quelques recherches (et l'idée étrange d'essayer de me lancer dans une implémentation DIY), j'ai atterri sur rapaio-jupyter-kernel qui est un noyau Jupyter qui prend en charge Java ?. Le projet indique :

Noyau Jupyter pour langage Java basé sur JShell. Il implémente la spécification de message Jupyter version 5.4 et nécessite Java = 22.

C'est incroyable; Je commence à l'utiliser et WOW !?. Jetez un œil à certaines de ses fonctionnalités, ci-dessous j'ai résumé les plus représentatives :

Fonctionnalités du bloc-notes Java Jupyter


Vous pouvez écrire du 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))

Complexe[a=11.0, b=21.0]

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

5

Commandes magiques

Outre le code Java, une cellule peut contenir des commandes spéciales implémentées par le noyau. Ceux-ci sont appelés codes magiques et il en existe deux types : les lignes magiques et les cellules magiques.
Les Lignes magiques sont des lignes préfixées par %. Après le préfixe, il est suivi de la commande magique et des paramètres facultatifs. Vous trouverez ci-dessous un exemple de ligne magique :

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

| enregistrer Complexe

Interpolation des commandes magiques

Parfois, il est nécessaire d'exécuter une commande magique de manière plus dynamique. Cela peut être fait en utilisant l'interpolation magique.
L'interpolation magique est l'interpolation d'un contenu marqué qui commence par \{ et se termine par }. Tout contenu décoré avec ces marqueurs est évalué dans jshell et le résultat est transformé en une chaîne qui remplace le contenu décoré dans la commande magique.

String version = "1.0.2";

 

Déclaration de sortie Cet article est reproduit sur : https://dev.to/bsorrentino/jupyter-notebook-for-java-3cej?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3