Всем привет!

Одним из основных инструментов на нашем курсе «Разработчик BigData» является Jupyter. Глянем, что его разработчики приготовили в новой итерации и что уже доступно в бета-версии.

Поехали.

Вкратце: JupyterLab готов к ежедневному использованию (установка, документация, экскурс через Binder)

JupyterLab — это интерактивная среда разработки для работы с блокнотами, кодом и данными.



Эволюция Jupyter Notebook

Проект Jupyter существует для разработки программного обеспечения с открытым исходным кодом, открытых стандартов и сервисов для интерактивных и воспроизводимых вычислений.

С 2011 года Jupyter Notebook является флагманским проектом по созданию воспроизводимых вычислительных описаний. Jupyter Notebook позволяет пользователям создавать и обмениваться документами, которые объединяют живой код с нарративным текстом, математическими уравнениями, визуализацией, интерактивными элементами управления и многими другими прекрасными фичами. Он также предоставляет строительные блоки для интерактивных вычислений с данными: файловый браузер, терминалы и текстовый редактор.

Jupyter Notebook стал повсеместным благодаря быстрому росту даталогии и машинного обучения и росту популярности программного обеспечения с открытым исходным кодом в промышленности и научном сообществе:

  • На сегодняшний день имеются миллионы пользователей Jupyter Notebook во многих областях, от науки о данных и машинного обучения до музыки и образования. Международное сообщество собрано почти из всех стран на Земле.
  • Jupyter Notebook теперь поддерживает более 100 языков программирования, большинство из которых были разработаны сообществом.
  • В GitHub находится более 1,7 миллиона публичных блокнотов Jupyter. Авторы публикуют блокноты Jupyter совместно с научными исследованиями, академическими журналами, журналистикой данных, учебными курсами и книгами.

В то же время сообщество столкнулось с трудностями при реализации различных рабочих процессов программного обеспечения на стандартном блокноте без вспомогательных средств, например, с использованием кода из текстовых файлов в интерактивном режиме. Классический Jupyter Notebook, построенный на веб-технологиях с 2011 года, также трудно настроить и расширить.

JupyterLab: готов для пользователей

JupyterLab — это интерактивная среда разработки для работы с блокнотами, кодом и данными. Самое главное, что JupyterLab имеет полную поддержку блокнотов Jupyter. Кроме того, JupyterLab позволяет использовать текстовые редакторы, терминалы, средства просмотра файлов данных и другие настраиваемые компоненты рядом с блокнотами в разбитой на вкладки рабочей области.



JupyterLab позволяет организовать рабочую зону с помощью блокнотов, текстовых файлов, терминалов и выводов блокнотов.

JupyterLab обеспечивает высокий уровень интеграции между блокнотами, документами и действиями:

  • Используется drag-and-drop для того чтобы можно было переупорядочить ячейки и скопировать их между блокнотами.
  • Блоки кода выполняются интерактивно прямо из текстовых файлов (.py, .R, .md, .tex и т. д.).
  • Консоль кода можно связать с ядром блокнота, чтобы изучать код в интерактивном режиме, не загромождая блокнот временными правками.
  • Возможность редактирования популярных форматов файлов с предварительным просмотром в реальном времени, такие как Markdown, JSON, CSV, Vega, VegaLite и другие.

Для начала стоит ознакомится с документацией и инструкцией по установке или глянуть при помощи MyBinder. Так же можно настроить JupyterHub для работы JupyterLab.

Настройте свой JupyterLab

JupyterLab построен на системе расширений, которые позволяют настраивать и улучшать сред под себя. Фактически, вся встроенная функциональность самого JupyterLab (блокноты, терминалы, браузер файлов, система меню и т. д.) обеспечивается набором основных расширений.



Расширения JupyterLab позволяют работать с различными форматами данных, такими как GeoJSON, JSON и CSV.

Помимо прочего, расширения могут:

  • Предоставлять новые темы, редакторы файлов или средства визуализации для объемных выводов в блокнотах;
  • Добавить пункты меню, сочетания клавиш или дополнительные параметры настройки;
  • Предоставлять API для других расширений.

Разработанные сообществом расширения на GitHub помечены темой jupyterlab-extension и в настоящее время включают в себя файловые просмотрщики (GeoJSON, FASTA и т. д.), интеграцию с Google Диском, просмотр GitHub и поддержку ipywidgets.

Разработка расширений JupyterLab

Хотя большинство пользователей JupyterLab будут устанавливать готовые расширения, некоторые захотят разработать свои собственные. API разработки расширений еще развивается в этой бета-версии и должно стабилизироваться в JupyterLab 1.0. Чтобы начать разработку расширения JupyterLab, см. Руководство разработчика расширений JupyterLab и шаблоны расширения для TypeScript или JavaScript.

Сам JupyterLab разрабатывается на базе новой библиотеки Javascript для создания расширяемых, высокопроизводительных веб-приложений в стиле настольного компьютера PhosphorJS. Используются современные технологии JavaScript, такие как TypeScript, React, Lerna, Yarn и webpack. Модульные тесты, документация, согласованные стандарты кодирования и исследования пользователей помогают нам поддерживать высокое качество приложения.

JupyterLab 1.0 и далее

JupyterLab 1.0 планируется выпустить в 2018 году. Бета-версии, ведущие к версии 1.0, будут сосредоточены на стабилизации API расширений, улучшении пользовательского интерфейса и дополнительных основных функциях. Все выпуски в бета-серии будут достаточно стабильными для повседневного использования.

JupyterLab 1.0 в конечном итоге заменит классический блокнот Jupyter. На протяжении всего этого перехода один и тот же формат документа для блокнотов будет поддерживаться как классическим блокнотом, так и JupyterLab.

Присоединяйтесь

Если вы хотите принять участие в разработке JupyterLab, то для этого существует немало способов:

  • Используйте API разработки расширений, чтобы создавать собственные расширения JupyterLab. Пожалуйста, добавьте тему расширения jupyterlab-extension, если расширение размещено на GitHub. Обратная связь очень ценна.
  • Можно внести свой вклад в разработку, документацию и дизайн JupyterLab на GitHub. Чтобы начать работу с разработкой, ознакомьтесь с Руководством по внедрению и Кодексом поведения. Проблемы, которые идеально подходят для новых участников, обозначаются как «хороший первое задание» или «нужна помощь».
  • Можно связаться на странице решения проблем на GitHub или нашем канале Gitter. Это полезно если обнаружена ошибка или захочется получить какой-то фидбек от разработчиков.

THE END

Вопросы, комментарии, как всегда, ждём или тут, или на Дне открытых дверей, где можно будет помучать Ксению вопросами, как по курсу, так и вообще.

Комментарии (2)


  1. alec_kalinin
    23.03.2018 21:06
    +1

    Спасибо за обзор! У меня jupyter notebooks один из основных рабочих инструментов. Но… У есть у меня странное ощущение… 20 лет спустя мы снова изобрели MathCad.


    1. MaxRokatansky Автор
      24.03.2018 16:20

      Не за что :)
      Как говорится: «Всё новое — это хорошо забытое старое».