Netflix представив нове інтерактивне середовище обчислень Polynote
Netflix представив нове інтерактивне середовище обчислень Polynote
Netflix представила нове інтерактивне середовище обчислень Polynote, призначене для супроводу процесу наукових досліджень, обробки та візуалізації даних (дозволяє поєднувати код з науковими викладками та матеріалами для публікації). Код Polynote написаний мовою Scala і розповсюджується під ліцензією Apache 2.0.
Документи в Polynote є впорядкованим набором осередків, які можуть містити код або текст. Кожен осередок редагується і виконується окремо. Допускається перегрупування, видалення та додавання осередків, але при цьому стан даних для кожного осередку залежить від обчислень у минулих осередках (виконання зверху-вниз). Такий підхід гарантує повторюваність визначених у документі обчислень (повторне виконання документа будь-яких системах призведе до того ж результату). Інформація про залежність та конфігурація зберігаються безпосередньо в документі, а не в окремих файлах.
На відміну від схожих проектів Jupyter і Zeppelin, нове середовище дозволяє змішувати в одному документі код кількома мовами програмування, забезпечуючи спільний доступ до даних із коду кількома мовами (визначається загальна схема даних). Наприклад, в одному документі можна поєднувати код мовою Scala із застосуванням популярних бібліотеки машинного навчання та візуалізації для мови Python. На поточному етапі розвитку реалізована підтримка мов Scala, Python, SQL та Vega.
З інших особливостей Polynote виділяються розширені засоби для редагування коду та тексту, близькі до можливостей інтегрованих середовищ розробки та текстових процесорів. Під час редагування коду підтримується автодоповнення, підсвічування місць виникнення помилок, виведення підказок для параметрів функцій та методів. У планах можливість переходу на визначення змінних/функцій із місць їхнього виклику (jump-to-definition).
Щодо підготовки документації та звітів, процес редагування тесту здійснюється в режимі WYSIWYG, що дозволяє відразу спостерігати кінцевий відформатований результат. При цьому для визначення формул передбачена можливість вставлення виразів у форматі LaTeX.
Середовище дозволяє повністю контролювати процес виконання - в області завдань показується який код зараз виконується і на якій стадії знаходяться обчислення. Через таблицю символів можна переглянути всі певні функції та змінні, а також проінспектувати їхнє значення або здійснити візуалізацію змін. Усі збої при виконанні та виняткові ситуації відразу підсвічуються у редакторі коду. У редакторі в режимі реального часу виділяється рядок коду, що виконується в даний момент.
Оброблювані дані відображаються у наочному вигляді з розбивкою за типами або в табличному поданні. Підтримується інтеграція з Apache Spark для перегляду, аналізу та візуалізації великих обсягів даних. Для спрощення візуалізації пропонується вбудований редактор графіків та діаграм. Як опція передбачена можливість застосування для візуалізації Vega і Matplotlib.