Jupyter
Jupyter | |
---|---|
На честь | Julia, Python і R |
Тип | неприбуткова організація проєкт |
Засновник | Fernando Pérezd |
Засновано | 2014 |
Правовий статус | неприбуткова організація |
Країна | США |
Членство | Joint Roadmap for Open Science Toolsd_—_2018. |
Продукція | Jupyter Notebook[d], JupyterLab[d] |
Вебсайт: jupyter.org | |
Jupyter у Вікісховищі |
Jupyter (укр. Юпітер; [ˈdʒuːpɪtər][3]) — це проєкт і спільнота, метою якої є «розробка програмного забезпечення з відкритим кодом, відкритих стандартів та служб для інтерактивних обчислень[en] на десятках мов програмування».[4] Його виділили з IPython у 2014 році Фернандо Перес[en][5] та Браян Грейнджер.[6] Назва Project Jupyter є посиланням на три основні мови програмування, які підтримує Jupyter, а саме: Julia, Python і R. Це також данина пам'яті записникам Галілея, в яких записані відкриття супутників Юпітера. Проєкт Jupyter розробив і підтримує інтерактивні обчислювальні продукти Jupyter Notebook, JupyterHub і JupyterLab. Jupyter фінансується NumFOCUS.[7]
У 2014 році Фернандо Перес оголосив про допоміжний проєкт від IPython під назвою Project Jupyter.[8] IPython продовжує існувати як оболонка Python і ядро для Jupyter, тоді як Notebook[en] та інші незалежні від мови[en] частини IPython переміщено під іменем Jupyter.[9][10] Jupyter не залежить від мов і підтримує середовища виконання (ядра) на кількох десятках мов, серед яких Julia, R, Haskell, Ruby і, звичайно, Python (через ядро IPython).[11]
У 2015 році GitHub і Jupyter Project оголосили про вихід формату файлів Jupyter notebooks (файли .ipynb) на платформі GitHub.[12][13]
Функціональна філософія Project Jupyter полягає в підтримці інтерактивної науки про дані та наукових обчислень[en] на всіх мовах програмування за допомогою розробки програмного забезпечення з відкритим кодом. Згідно з веб-сайтом Project Jupyter, «Jupyter завжди буде програмним забезпеченням з відкритим вихідним кодом, безкоштовним для всіх і випущеним на ліберальних умовах модифікованої ліцензії BSD».
Jupyter Notebook (раніше IPython Notebooks) — це веб-інтерактивне обчислювальне середовище для створення Notebook документів.
Документ Jupyter Notebook — це REPL на основі браузера, що містить упорядкований список комірок введення/виводу, який може містити код, текст (за допомогою Markdown), математику, графіки та мультимедійні дані. Під інтерфейсом notebook — це документ JSON, який відповідає версійній схемі, він зазвичай закінчується розширенням «.ipynb».
Блокноти Jupyter створені на основі ряду популярних бібліотек з відкритим вихідним кодом:
Jupyter Notebook може підключатися до багатьох ядер, щоб дозволити програмування різними мовами. Ядро Jupyter — це програма, відповідальна за обробку різних типів запитів (виконання коду[en], автодоповнення коду, перевірка) та надання відповіді. Ядра спілкуються з іншими компонентами Jupyter за допомогою ZeroMQ і, таким чином, можуть бути на тих самих або віддалених машинах. На відміну від багатьох інших інтерфейсів, подібних до ноутбуків, у Jupyter ядра не знають, що вони прикріплені до певного документа, і можуть бути підключені до багатьох клієнтів одночасно. Зазвичай ядра дозволяють писати лише на одній мові, але є кілька винятків. За замовчуванням Jupyter Notebook постачається з ядром IPython. Станом на випуск 2.3[14][15] (жовтень 2014 р.) існує 49 ядер, сумісних з Jupyter, для багатьох мов програмування, включаючи Python, R, Julia та Haskell.[16]
Блокнот Jupyter можна конвертувати в ряд відкритих стандартних вихідних форматів (HTML, презентаційні слайди[en], LaTeX, PDF, ReStructuredText, Markdown, Python) за допомогою «Download as» у веб-інтерфейсі та бібліотеки nbconvert[17] або інтерфейсу командного рядка «jupyter» nbconvert. Щоб спростити візуалізацію документів блокнота Jupyter в Інтернеті, бібліотека nbconvert[18] надається як послуга через NbViewer[19], яка може отримати URL-адресу будь-якого загальнодоступного документа блокнота, одразу ж перетворюючи його в HTML, та відобразити на користувача.
Інтерфейс блокнота був доданий до IPython у випуску 0.12[20] (грудень 2011 р.), перейменований на блокнот Jupyter у 2015 р. (IPython 4.0 — це Jupyter 1.0). Jupyter Notebook схожий на notebook-інтерфейси інших програм, таких як Maple, Mathematica і SageMath, стиль обчислювального інтерфейсу, який виник з Mathematica у 1980-х роках.[21] Інтерес Jupyter наздогнав популярність інтерфейсу Mathematica notebook на початку 2018 року[21]
JupyterLab — це новіший інтерфейс користувача для Project Jupyter. Він пропонує будівельні блоки класичного блокнота Jupyter (ноутбук, термінал, текстовий редактор, браузер файлів, розширені вихідні дані тощо) у гнучкому інтерфейсі користувача. Перший стабільний випуск було оголошено 20 лютого 2018 року.[22]
- JupyterHub[23] — багатокористувацький сервер для ноутбуків Jupyter. Він розроблений для підтримки багатьох у користуванні, створенні, керуванні та проксуванні багатьох окремих серверів Jupyter Notebook. Хоча JupyterHub вимагає керування серверами, сторонні служби, такі як Jupyo[24], є альтернативою JupyterHub. Вони дозволяють розміщувати багатокористувацькі ноутбуки Jupyter і керувати ними в хмарі.
- Jupyter Book — це проєкт з відкритим вихідним кодом для створення книг і документів із обчислювального матеріалу.[25] Він дозволяє користувачеві створювати вміст у суміші Markdown, розширеної версії Markdown під назвою MyST,[26] Maths & Equations з використанням MathJax[en], Jupyter Notebooks, reStructuredText, результату запуску Jupyter Notebooks під час складання. Можна створити кілька вихідних форматів (наразі окремі файли, багатосторінкові веб-сторінки HTML і файли PDF).
- nbgrader — це інструмент для створення та оцінювання (позначення) завдань у блокнотах Jupyter.[27] Це дозволяє викладачу створювати завдання, які включають вправи з кодування на Python або будь-якому іншому підтримуваному ядрі, а також текстові відповіді. Надіслані завдання можна автоматично позначати, оцінювати вручну або все це разом.
Jupyter Notebook став популярним інтерфейсом користувача для хмарних обчислень. Основні постачальники хмарних послуг прийняли Jupyter Notebook або похідні інструменти як фронтенд-інтерфейс для користувачів хмари. Приклади включають Amazon SageMaker[en] Notebooks,[28] Google Colaboratory[29] і Microsoft Azure Notebook.[30]
Google Colaboratory (також відомий як Colab) — це безкоштовне середовище блокнотів Jupyter, яке працює у хмарі та зберігає свої блокноти на Google Drive. Colab спочатку був внутрішнім проєктом Google; була зроблена спроба[31] відкрити вихідний код для всього коду та працювати більш безпосередньо вгору, що призвело до розробки розширення «Відкрити в Colab» для Google Chrome[32], але це врешті закінчилося, і розробка Colab продовжилася всередині. Станом на жовтень 2019 інтерфейс користувача Colaboratory дозволяє створювати блокноти лише з ядрами Python 2 і Python 3; проте наявний ноутбук, специфікація ядра якого є IR або Swift, також буде працювати, оскільки R і Swift встановлені в контейнері. Мова Julia також може працювати на Colab (напр. Python і графічні процесори; Блоки тензорної обробки Google також працюють з Julia на Colab[33]).[34][35]
- 11 лютого 2016 року колаборація LIGO оголосила про перше спостереження гравітаційних хвиль. Співпраця випустила необроблені наукові дані разом із записниками Jupyter, які містять код Python для обробки даних та відтворення цифр із документу цього відкриття.[36]
- 5 квітня 2018 року The Atlantic опублікувала статтю під назвою The Scientific Paper Is Obsolete, в якій обговорювалася роль Notebook Jupyter і Mathematica в майбутньому наукового видання.[21] Ця стаття викликала відповіді від видатних учених і академіків, включаючи економіста Пола Ромера.[37]
- У 2012 році Фернандо Перес[en] отримав нагороду FSF Free Software Awards за роботу над IPython, попередником проєкту Jupyter.
- У 2013 році команда IPython отримала грант у розмірі 1,15 мільйона доларів від Фонду Альфреда П. Слоуна[38][39], який профінансував початкову стадію розробки, яка привела до створення проєкту Jupyter.[40]
- У 2015 році проєкт Jupyter отримав спільний грант у розмірі 6 мільйонів доларів від Благодійного фонду Леони М. і Гаррі Б. Хелмслі[en], Фонду Гордона і Бетті Мур[en] i Фонду Альфреда П. Слоуна, вони фінансували роботу, яка привела до розширення можливостей основних інструментів Jupyter, а також створення JupyterLab.[41]
- 2 травня 2018 року керівний комітет проєкту Jupyter був нагороджений ACM Software System Award[en] 2017, це щорічна нагорода, яку отримують люди або організації «за розробку системи програмного забезпечення, яка мала тривалий вплив, відображений у внеску в концепції, в комерційне прийняття, або обидва».[42]
- Проєкт Binder[en]
- Мова даних GNU[en]
- Октава GNU
- RStudio
- Scilab
- Spyder
- Фреймворк Mercury для перетворення блокнотів в інтерактивні веб-додатки (звіти, інформаційні панелі, слайди), корисний для спільного використання ноутбуків з нетехнічними користувачами.