Jupyter
Jupyter | |
---|---|
![]() | |
На честь | Julia, Python і R |
Тип | неприбуткова організація проєкт |
Засновник | Fernando Pérezd |
Засновано | 2014[1] |
Правовий статус | неприбуткова організація |
Країна | ![]() |
Членство | Joint Roadmap for Open Science Toolsd[2] |
Продукція | Jupyter Notebook[d], JupyterLab[d] |
Вебсайт: jupyter.org | |
![]() |
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]
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b3/Galileo_Galilei_%281564_-_1642%29_-_Serenissimo_Principe_-_manuscript_with_observations_of_Jupiter_and_four_of_its_moons%2C_1610.png/220px-Galileo_Galilei_%281564_-_1642%29_-_Serenissimo_Principe_-_manuscript_with_observations_of_Jupiter_and_four_of_its_moons%2C_1610.png)
У 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
![](http://upload.wikimedia.org/wikipedia/commons/thumb/b/b6/Paws_notebook_showing_how_to_load_wikidata_item_dictionary.png/220px-Paws_notebook_showing_how_to_load_wikidata_item_dictionary.png)
Jupyter Notebook (раніше IPython Notebooks) — це веб-інтерактивне обчислювальне середовище для створення Notebook документів.
Документ Jupyter Notebook — це REPL на основі браузера, що містить упорядкований список комірок введення/виводу, який може містити код, текст (за допомогою Markdown), математику, графіки та мультимедійні дані. Під інтерфейсом notebook — це документ JSON, який відповідає версійній схемі, він зазвичай закінчується розширенням «.ipynb».
Блокноти Jupyter створені на основі ряду популярних бібліотек з відкритим вихідним кодом:
- IPython
- ZeroMQ
- Торнадо
- jQuery
- Bootstrap (фреймворк інтерфейсу)
- MathJax[en]
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 для перетворення блокнотів в інтерактивні веб-додатки (звіти, інформаційні панелі, слайди), корисний для спільного використання ноутбуків з нетехнічними користувачами.
Посилання
- ↑ а б https://jupyter.org/about
- ↑ Open Science Projects Collaborate on Joint Roadmap — 2018.
- ↑ деякі користувачі вимовляють «py» як /pʌɪ/, відсилаючись на вимову мови програмування Python /ˈpʌɪθn/
- ↑ Project Jupyter. www.jupyter.org. Процитовано 13 листопада 2020.
- ↑ Berkeley Institute for Data Science.
- ↑ Speaker: Brian Granger: Jupyter Notebook conference & training: JupyterCon.
- ↑ NumFOCUS Sponsored Projects. NumFOCUS. Процитовано 25 жовтня 2021.
- ↑ Project Jupyter // Speaker Deck.
- ↑ The Notebook, Qt console and a number of other pieces are now parts of Jupyter. GitHub. 29 травня 2021.
- ↑ The Big Split™. 28 серпня 2017.
- ↑ Project Jupyter | Home.
- ↑ sshirokov (7 травня 2015). GitHub + Jupyter Notebooks = <3. The GitHub Blog (амер.). Процитовано 10 квітня 2018.
- ↑ Rendering Notebooks on GitHub. Jupyter Blog. 7 травня 2015. Процитовано 10 квітня 2018.
- ↑ What's new in IPython > Issues closed in the 2.x development cycle.
- ↑ What's new in IPython > 2.0 Series.
- ↑ Jupyter kernels > List of (some) IPython compatible kernels. GitHub.
- ↑ nbconvert: Convert Notebooks to other formats. nbconvert 6.0.8.dev0 documentation. Процитовано 13 листопада 2020.
- ↑ jupyter/nbconvert, Project Jupyter, 12 квітня 2021, процитовано 13 квітня 2021
- ↑ nbviewer. nbviewer.jupyter.org. Процитовано 13 листопада 2020.
- ↑ Notebook's announcement- 0.12 release note.
- ↑ а б в Somers, James. The Scientific Paper Is Obsolete. The Atlantic (амер.). Процитовано 10 квітня 2018.
- ↑ JupyterLab is Ready for Users. Jupyter Blog. 20 лютого 2018. Процитовано 4 травня 2018.
- ↑ Project Jupyter.
- ↑ Jupyo | Jupyter notebooks for Python, R, Julia in the cloud. jupyo.com. Архів оригіналу за 3 січня 2019. Процитовано 2 січня 2019.
- ↑ Books with Jupyter. jupyterbook.org (англ.). Процитовано 13 листопада 2020.
- ↑ The MyST Syntax Guide. myst-parser.readthedocs.io. Процитовано 13 листопада 2020.
- ↑ nbgrader 0.6.1 documentation. nbgrader.readthedocs.io. Процитовано 13 листопада 2020.
- ↑ Amazon SageMaker on AWS. Amazon Web Services, Inc. (амер.). Процитовано 9 травня 2018.
- ↑ Welcome to Colaboratory. research.google.com. Процитовано 9 травня 2018.
- ↑ Online Jupyter Notebooks. notebooks.azure.com. Процитовано 9 травня 2018.
- ↑ Nerds rejoice: Google just released its internal tool to collaborate on AI. Quartz (амер.). Процитовано 6 вересня 2018.
- ↑ Open in Colab GitHub repository. GitHub (англ.). Процитовано 6 вересня 2018.
- ↑ Julia on TPUs, JuliaTPU, 3 грудня 2019, процитовано 3 грудня 2019
- ↑ Google Colaboratory. colab.research.google.com (англ.). Процитовано 6 грудня 2019.
- ↑ gpu — Julia in Google Colab. Stack Overflow. Процитовано 6 грудня 2019.
- ↑ LIGO Open Science Center. losc.ligo.org (англ.). Процитовано 4 травня 2018.
- ↑ Romer, Paul. Jupyter, Mathematica, and the Future of the Research Paper. paulromer.net (амер.). Процитовано 15 квітня 2018.
- ↑ Sloan Foundation Grant. ipython.org. Процитовано 3 травня 2018.
- ↑ An Open Source Framework for Interactive, Collaborative and Reproducible Scientific Computing and EducationOpen Source Tools for Interactive, Collaborative and Reproducible Computing. ipython.org. Процитовано 3 травня 2018.
- ↑ Perez, Fernando (28 грудня 2015). IPython 2015 Final Report — Sloan Foundation (PDF). ipython.org. Процитовано 3 травня 2018.
- ↑ UC Berkeley and Cal Poly to Expand and Enhance Open-Source Software for Scientific Computing and Data Science | Helmsley Charitable Trust. helmsleytrust.org (англ.). Архів оригіналу за 3 січня 2020. Процитовано 3 травня 2018.
- ↑ Software System Award. ACM Awards. Association for Computing Machinery. Архів оригіналу за 5 травня 2016. Процитовано квітня 28, 2016.
Посилання
- Офіційний сайт
- Jupyter kernels
- Jupyter Tutorial
|