Интерактивный блокнот — подход к построению пользовательского интерфейса интерактивной вычислительной среды, объединяющий в одном окне работу с кодом (в том числе редактор с подсветкой синтаксиса), исходными данными и результатом вычислений и сформированной графикой — в едином редактируемом документе, называемом блокнотом англ. notebook. Среди систем, использующих интерактивный блокнот в качестве основного интерфейса — многие системы компьютерной алгебры (в том числе Mathematica, Sage, Mathcad), iPython, Jupyter, RStudio, Apache Zeppelin. Известны также реализации в виде плагинов к интерактивным средам разработки (например Kotlin Notebook для IntelliJ IDEA[1]).
В отличие от интегрированных сред разработки, нацеленных, прежде всего, на работу с кодом и отчуждаемый от неё результат (отлаженный код и исполняемую программу), интерактивный блокнот предполагает последовательное создание документа, сочетающего код и результаты его выполнения, в этом смысле такой подход сочетается с концепцией грамотного программирования, предполагающей единую среду для программирования и документирования. От инструментов анализа данных, работающих для формирования запросов к данным из внешних источников, обработки и визуализации результатов, блокноты отличает ориентированность в первую очередь на работу с кодом, и алгоритм фактически является частью результата (а не только отчёт о выборке или визуализация). При этом существует тенденция к сближению подходов, например, Apache Zeppelin, обладающий обширными средствами доступа к базам данных, позиционируется и как BI-инструмент, а Jupyter активно применяется как средство интерактивной отладки для разработки на нескольких языках программирования, которые поддерживают его расчётные ядра.
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e5/Sagemath-jupyter-screenshot.png/220px-Sagemath-jupyter-screenshot.png)
![](http://upload.wikimedia.org/wikipedia/commons/thumb/e/e9/SAGE_equation_solve.jpeg/220px-SAGE_equation_solve.jpeg)
Функции
правитьТипичные функции интерактивного блокнота:
- работа с кодом в режиме REPL — но не в режиме командной строки, а в едином интерфейсе, в том числе веб;
- интерактивная визуализация данных (в том числе расчётных);
- доступ и обработка данных из внешних источников (в том числе в СУБД);
- реализация математических вычислений;
- оформление документации, включающей текст (например в форматах markdown или Latex), форматированные формулы, исходный код и используемые данные.
Использование записанных сеансов в форматах интерактивных блокнотов получило определённое распространение как средство технической коммуникации; например, хостинг исходного кода GitHub поддерживает рендер формата файлов Jupyter — результат вычисления блокнота отображается сразу при просмотре его исходного кода на платформе.
В другом языковом разделе есть более полная статья Notebook interface (англ.). |
Примечания
править- ↑ https://blog.jetbrains.com/kotlin/2023/07/introducing-kotlin-notebook/ Introducing Kotlin Notebook