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

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

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

Функции

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

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

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

Примечания

Ссылки

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.