„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Jupyter Notebook für Java

Jupyter Notebook für Java

Veröffentlicht am 06.11.2024
Durchsuche:196

Das leistungsstarke Jupyter Notebook

Jupyter Notebooks sind ein hervorragendes Tool, das ursprünglich entwickelt wurde, um Datenwissenschaftlern und Ingenieuren dabei zu helfen, ihre Arbeit mit Daten mithilfe der Programmiersprache Python zu vereinfachen. Tatsächlich sind Notebooks aufgrund ihres interaktiven Charakters ideal, um die Codeergebnisse schnell anzuzeigen, ohne eine Entwicklungsumgebung einzurichten, zu kompilieren, zu verpacken usw. Diese Funktion war von entscheidender Bedeutung für die Einführung in Datenwissenschaft, maschinellem Lernen und statistischer Modellierung, wo Entwicklungskompetenz weniger wichtig war als Fachwissen in der Datenmanipulation.

Vorteile

Im Folgenden sind einige der Vorteile des Jupyter-Notebooks aufgeführt

  1. Interaktive Entwicklung: Mit Notebooks können Entwickler Code in kleinen Blöcken schreiben, ihn sofort testen und Ergebnisse visualisieren. Dieser interaktive Workflow fördert eine schnellere Iteration und Fehlerbehebung und eignet sich ideal für die Datenexploration, Algorithmusentwicklung und schnelle Prototypenerstellung.
  2. Umfangreiche Visualisierungen: Typischerweise ist Notebook in leistungsstarke Visualisierungsbibliotheken integriert, die Diagramme, Diagramme und andere visuelle Ausgaben inline anzeigen können.
  3. Dokumentation und Code zusammen: Notebooks kombinieren ausführbaren Code mit Markdown-Zellen, sodass Entwickler ihren Code dokumentieren, Logik erklären usw. können und so besser lesbare und wartbare Codebasen erstellen.
  4. Zusammenarbeit: Durch die gemeinsame Nutzung von Notizbüchern können Teammitglieder Code überprüfen und ausführen, ohne eine Entwicklungsumgebung einzurichten, was die Zusammenarbeit erleichtert, insbesondere in funktionsübergreifenden Teams mit nicht-technischen Beteiligten.
  5. Reproduzierbarkeit: Notebooks können von oben nach unten wiederholt werden, um sicherzustellen, dass jede Analyse oder jeder Test konsistent reproduziert werden kann. Dies ist entscheidend für das Debuggen, Testen oder Präsentieren von Ergebnissen.

Zusammenfassend können wir sagen:

Jupyter-Notebooks optimieren den Entwicklungsprozess, von der ersten Erkundung bis zum produktionsreifen Code, und bieten Flexibilität und Echtzeit-Feedback.

Durchbrechen Sie die Python-Barriere

In Anbetracht der Vorteile, die Jupyter-Notebooks bieten, wäre es für Softwareentwickler großartig, einen solchen Notebook-Ansatz zu nutzen, um beispielsweise USE CASE TESTS für Projekte zu entwickeln oder nützliche INTERAKTIVE HOW-TO-Anleitungen bereitzustellen &&&].

Die Frage hier ist:

IST ES MÖGLICH, EIN JUPYTER-NOTEBOOK FÜR ANDERE PROGRAMMIERSPRACHEN ALS PYTHON ZU VERWENDEN?

Die Antwort ist JA?.

Die Jupiter-Architektur

Die Jupyter-Tools wurden so konzipiert, dass sie durch das Kernel-Konzept mehrere Programmiersprachen unterstützen, siehe Diagramm unten:

Jupyter Notebook for Java

Der Kernel ist die Art und Weise, wie der Jupyter-Notebook-Server vom Benutzer in das Notebook-Dokument (.ipynb) geschriebene Codeblöcke auswertet. Daher reicht es aus, über einen Kernel zu verfügen, der den Code der Programmiersprache Ihrer Wahl auswerten kann Es wird vom Jupyter-Notebook unterstützt.
Natürlich lässt sich leicht ableiten, dass jede potenzielle Programmiersprache, die ein Jupyter-Kernel unterstützen kann, die Read-Eval-Print-Loop-Funktion (REPL) unterstützen sollte.

Die Frage wird:

GIBT ES ANDERE JUPYTER-KERNEL ALS PYTHON ONE❓?

Die Antwort ist Ja?.

In letzter Zeit habe ich an Langgraph4J gearbeitet, einer Java-Implementierung des bekannteren Langgraph.js, einer Javascript-Bibliothek, die von Langchain zum Erstellen von Agenten- und Multiagenten-Workflows verwendet wird. Interessant ist, dass [Langchain.js] Javascript-Jupyter-Notebooks verwendet, die auf einem DENO-Jupiter-Kernel basieren, um Anleitungen zu implementieren und zu dokumentieren.
Also stand ich vor einem Dilemma, wie ich den gleichen Ansatz in Java verwenden (oder möglicherweise simulieren) sollte, und ohne große Hoffnung begann ich, nach einem Jupyter-Kernel zu suchen, der Java unterstützt, wenn man bedenkt, dass es ab der JDK 9-Version die Einführung von gab JShell, die die REPL für Java aktiviert hat.

Der Java Jupyter Kernel

Nach ein wenig Recherche (und dem seltsamen Gedanken, mich in eine DIY-Implementierung zu stürzen) bin ich bei rapaio-jupyter-kernel gelandet, einem Jupyter-Kernel, der Java unterstützt? Im Projekt heißt es:

Jupyter-Kernel für Java-Sprache basierend auf JShell. Es implementiert die Jupyter-Nachrichtenspezifikation Version 5.4 und erfordert Java = 22.

Es ist erstaunlich; Ich fange an, es zu benutzen und WOW!?. Werfen Sie einen Blick auf einige seiner Funktionen. Nachfolgend habe ich die repräsentativsten zusammengefasst:

Funktionen des Java Jupyter-Notebooks


Sie können normales Java schreiben.

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

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

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

5

Magische Befehle

Eine Zelle kann neben Java-Code auch spezielle, vom Kernel implementierte Befehle enthalten. Diese werden magischer Code genannt und es gibt zwei Arten: magische Linien und magische Zellen.
Magische Zeilen sind Zeilen, denen % vorangestellt ist. Nach dem Präfix folgen der magische Befehl und die optionalen Parameter. Unten ist ein Beispiel für eine magische Zeile:

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

| Datensatz Komplex

Magic befiehlt Interpolation

Manchmal besteht die Notwendigkeit, einen magischen Befehl dynamischer auszuführen. Dies kann mithilfe der magischen Interpolation erfolgen.
Bei der magischen Interpolation handelt es sich um die Interpolation markierter Inhalte, die mit \{ beginnt und mit } endet. Jeder mit diesen Markierungen dekorierte Inhalt wird in jshell ausgewertet und das Ergebnis in einen String umgewandelt, der den dekorierten Inhalt im magischen Befehl ersetzt.

String version = "1.0.2";

 

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/bsorrentino/jupyter-notebook-for-java-3cej?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3