«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Блокнот Jupyter для Java

Блокнот Jupyter для Java

Опубликовано 6 ноября 2024 г.
Просматривать:277

Мощь Jupyter Notebook

Jupyter Notebooks — отличный инструмент, изначально разработанный, чтобы помочь ученым и инженерам, работающим с данными, упростить работу с данными с помощью языка программирования Python. Фактически, интерактивный характер блокнотов делает их идеальными для быстрого просмотра результатов кода без настройки среды разработки, компиляции, упаковки и т. д. Эта функция имела решающее значение для внедрения в области науки о данных, машинного обучения и статистического моделирования, где навыки разработки были менее важны, чем опыт манипулирования данными.

Преимущества

Ниже приведены некоторые преимущества блокнота Jupyter

  1. Интерактивная разработка: Блокноты позволяют разработчикам писать код небольшими частями, немедленно тестировать его и визуализировать результаты. Этот интерактивный рабочий процесс способствует более быстрой итерации и отладке, что идеально подходит для исследования данных, разработки алгоритмов и быстрого прототипирования.
  2. Расширенные возможности визуализации: Обычно Notebook интегрирован с мощными библиотеками визуализации, которые могут отображать графики, графики и другие визуальные данные в режиме реального времени.
  3. Документация и код вместе: в блокнотах исполняемый код сочетается с ячейками уценки, что позволяет разработчикам документировать свой код, объяснять логику и т. д., создавая более читаемые и удобные в обслуживании кодовые базы.
  4. Совместная работа: предоставляя общий доступ к записным книжкам, члены команды могут просматривать и запускать код без настройки среды разработки, что упрощает совместную работу, особенно в межфункциональных командах с участием заинтересованных сторон, не являющихся техническими специалистами.
  5. Воспроизводимость: журналы можно перезапускать сверху вниз, гарантируя, что любой анализ или тест могут быть последовательно воспроизведены. Это крайне важно для отладки, тестирования или представления результатов.

Подводя итог, можно сказать, что

Блокноты Jupyter упрощают процесс разработки — от первоначального исследования до готового к использованию кода, обеспечивая гибкость и обратную связь в режиме реального времени.

Разрушьте барьер Python

Учитывая преимущества, которые предлагают блокноты Jupyter, разработчикам программного обеспечения было бы здорово использовать такой подход к блокнотам для разработки, например, ТЕСТОВ ИСПОЛЬЗОВАНИЯ для проектов или предоставления полезных ИНТЕРАКТИВНЫХ ИНТЕРАКТИВНЫХ ИНСТРУКЦИЙ.

Вот вопрос:

МОЖНО ЛИ ИСПОЛЬЗОВАТЬ НОУТБУК JUPYTER ДЛЯ ЯЗЫКА ПРОГРАММИРОВАНИЯ, ДРУГОГО, ЧЕМ PYTHON❓?

Ответ: ДА?.

Архитектура Юпитера

Инструменты Jupyter были разработаны для поддержки нескольких языков программирования с использованием концепции Kernel, см. диаграмму ниже:

Jupyter Notebook for Java

Ядро — это то, как сервер блокнота Jupyter оценивает блоки кода, написанные пользователем внутри документа блокнота (.ipynb), поэтому достаточно иметь ядро, которое может оценивать код языка программирования по вашему выбору, чтобы иметь он поддерживается ноутбуком Jupyter.
Конечно, легко сделать вывод, что каждый потенциальный язык программирования, который может поддерживать ядро ​​Jupyter, должен поддерживать функцию цикла чтения-оценки-печати (REPL).

Возникает вопрос:

СУЩЕСТВУЕТ ЛИ ЯДРО JUPYTER, КРОМЕ PYTHON ONE❓?

Ответ: Да?.

В последнее время я работаю над Langgraph4J, который представляет собой Java-реализацию более известного Langgraph.js, библиотеки Javascript, используемой для создания агентских и мультиагентных рабочих процессов с помощью Langchain. Интересно отметить, что [Langchain.js] использует блокноты Javascript Jupyter на базе ядра DENO Jupiter для реализации и документирования инструкций.
Итак, я столкнулся с дилеммой, как использовать (или, возможно, моделировать) тот же подход в Java, и без особой надежды я начал искать ядро ​​Jupyter, поддерживающее Java, учитывая, что в версии JDK 9 было добавлено JShell, который включил REPL для Java.

Ядро Java Jupyter

После небольшого исследования (и странной мысли о попытке заняться самодельной реализацией) я остановился на rapaio-jupyter-kernel, который представляет собой ядро ​​Jupyter, поддерживающее Java?. В проекте указано:

Ядро Jupyter для языка Java на основе JShell. Он реализует спецификацию сообщений Jupyter версии 5.4 и требует Java = 22.

Это потрясающе; Я начинаю им пользоваться и ВАУ!?. Взгляните на некоторые его особенности, ниже я суммировал наиболее характерные из них:

Возможности ноутбука Java Jupyter


Вы можете написать обычный Java.

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

Сложный[a=11.0, b=21.0]

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

5

Магические команды

Помимо кода Java, ячейка может содержать специальные команды, реализуемые ядром. Они называются магическим кодом и бывают двух типов: магические линии и магические клетки.
Магические линии — это строки с префиксом %. После префикса следует магическая команда и необязательные параметры. Ниже приведен пример волшебной строки:

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

| запись Комплекса

Интерполяция магических команд

Иногда возникает необходимость выполнить магическую команду более динамично. Это можно сделать с помощью магической интерполяции.
Волшебная интерполяция — это интерполяция размеченного содержимого, которая начинается с \{ и заканчивается }. Любой контент, украшенный этими маркерами, оценивается в jshell, и результат преобразуется в строку, которая заменяет декорированный контент в магической команде.

String version = "1.0.2";

 

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/bsorrentino/jupyter-notebook-for-java-3cej?1. Если обнаружено какое-либо нарушение прав, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3