Интерактивный блокнот

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

Интерактивный блокнот — подход к построению пользовательского интерфейса интерактивной вычислительной среды, объединяющий в одном окне работу с кодом (в том числе редактор с подсветкой синтаксиса), исходными данными и результатом вычислений и сформированной графикой — в едином редактируемом документе, называемом блокнотом англ. notebook. Среди систем, использующих интерактивный блокнот в качестве основного интерфейса — многие системы компьютерной алгебры (в том числе Mathematica, Sage, Mathcad), iPython, Jupyter, RStudio, Apache Zeppelin. Известны также реализации в виде плагинов к интерактивным средам разработки (например Kotlin Notebook для IntelliJ IDEA[1]).

В отличие от интегрированных сред разработки, нацеленных, прежде всего, на работу с кодом и отчуждаемый от неё результат (отлаженный код и исполняемую программу), интерактивный блокнот предполагает последовательное создание документа, сочетающего код и результаты его выполнения, в этом смысле такой подход сочетается с концепцией грамотного программирования, предполагающей единую среду для программирования и документирования. От инструментов анализа данных, работающих для формирования запросов к данным из внешних источников, обработки и визуализации результатов, блокноты отличает ориентированность в первую очередь на работу с кодом, и алгоритм фактически является частью результата (а не только отчёт о выборке или визуализация). При этом существует тенденция к сближению подходов, например, Apache Zeppelin, обладающий обширными средствами доступа к базам данных, позиционируется и как BI-инструмент, а Jupyter активно применяется как средство интерактивной отладки для разработки на нескольких языках программирования, которые поддерживают его расчётные ядра.

Интерфейс системы Jupyter
Интерфейс системы Sage

Типичные функции интерактивного блокнота:

  • работа с кодом в режиме REPL — но не в режиме командной строки, а в едином интерфейсе, в том числе веб;
  • интерактивная визуализация данных (в том числе расчётных);
  • доступ и обработка данных из внешних источников (в том числе в СУБД);
  • реализация математических вычислений;
  • оформление документации, включающей текст (например в форматах markdown или Latex), форматированные формулы, исходный код и используемые данные.

Использование записанных сеансов в форматах интерактивных блокнотов получило определённое распространение как средство технической коммуникации; например, хостинг исходного кода GitHub поддерживает рендер формата файлов Jupyter — результат вычисления блокнота отображается сразу при просмотре его исходного кода на платформе.

Примечания

[править | править код]