Проект Jupyter ( / ˈ dʒ uː p ɪ t ər / ⓘ ) — это проект по разработкепрограммного обеспечения с открытым исходным кодом,открытых стандартови услуг дляинтерактивных вычисленийна несколькихязыках программирования.
Он был выделен из IPython в 2014 году Фернандо Пересом и Брайаном Грейнджером. Название проекта Jupyter является отсылкой к трем основным языкам программирования, поддерживаемым Jupyter : Julia , Python и R. Его название и логотип — дань уважения открытию Галилеем спутников Юпитера , как это зафиксировано в записных книжках, приписываемых Галилею.
Jupyter финансово спонсируется NumFOCUS. [1]
Первая версия Notebooks для IPython была выпущена в 2011 году командой, в которую входили Фернандо Перес, Брайан Грейнджер и Мин Рэган-Келли. [2] В 2014 году Перес анонсировал дополнительный проект IPython под названием Project Jupyter. [3] IPython продолжает существовать как оболочка Python и ядро для Jupyter, в то время как блокнот и другие языко-независимые части IPython перешли под именем Jupyter. [4] [5] Jupyter поддерживает среды выполнения (называемые «ядрами») на нескольких десятках языков, включая Julia, R, Haskell , Ruby и Python (через ядро IPython).
В 2015 году на GitHub было доступно около 200 000 блокнотов Jupyter . К 2018 году их было доступно около 2,5 миллионов. [6] В январе 2021 года было доступно почти 10 миллионов, включая блокноты о первом наблюдении гравитационных волн [7] и об открытии в 2019 году сверхмассивной черной дыры . [8]
Крупнейшие поставщики облачных вычислений внедрили Jupyter Notebook или производные инструменты в качестве внешнего интерфейса для пользователей облака. Примеры включают блокноты Amazon SageMaker , [9] Google’s Colaboratory, [10] [11] и Microsoft Azure Notebook. [12]
Visual Studio Code поддерживает локальную разработку блокнотов Jupyter. По состоянию на июль 2022 года расширение Jupyter для VS Code было загружено более 40 миллионов раз, что сделало его вторым по популярности расширением на VS Code Marketplace. [13]
Руководящий комитет Project Jupyter получил в 2017 году премию ACM Software System Award — ежегодную награду, которая присуждается людям или организациям «за разработку программной системы, которая оказала длительное влияние, отраженное во вкладе в концепции, коммерческом принятии или в том и другом». [14]
В 2018 году журнал Atlantic опубликовал статью под названием «Научная статья устарела», в которой обсуждалась роль Jupyter Notebook и Mathematica в будущем научных публикаций. [15] Экономист Пол Ромер в ответ опубликовал сообщение в блоге, в котором отразил свой опыт использования Mathematica и Jupyter для исследований, частично заключив, что Jupyter «лучше справляется с тем, что имел в виду Теодор Грей, когда разрабатывал Блокнот Mathematica». [16]
В 2021 году журнал Nature назвал Jupyter одним из десяти компьютерных проектов, изменивших науку. [8]
Jupyter Notebook в разговорной речи может относиться к двум различным концепциям: либо пользовательскому приложению для редактирования кода и текста, либо базовому формату файла, который совместим во многих реализациях.
Jupyter Notebook (ранее IPython Notebook) — это интерактивная веб- среда вычислений для создания документов записной книжки . Jupyter Notebook построен с использованием нескольких библиотек с открытым исходным кодом , включая IPython , ZeroMQ , Tornado , jQuery , Bootstrap и MathJax . Приложение Jupyter Notebook — это REPL на основе браузера, содержащий упорядоченный список ячеек ввода-вывода, который может содержать код, текст (с использованием Github Flavored Markdown ), математические вычисления, графики и мультимедийные материалы .
Jupyter Notebook похож на интерфейс записной книжки других программ, таких как Maple , Mathematica и SageMath , стиль вычислительного интерфейса, возникший в Mathematica в 1980-х годах. В начале 2018 года интерес к Jupyter превысил популярность интерфейса блокнота Mathematica. [15]
JupyterLab — это новый пользовательский интерфейс для Project Jupyter, предлагающий гибкий пользовательский интерфейс и больше функций, чем классический пользовательский интерфейс блокнота. О первом стабильном выпуске было объявлено 20 февраля 2018 года. [17] [18] В 2015 году был выделен совместный грант в размере 6 миллионов долларов от Благотворительного фонда Леоны М. и Гарри Б. Хелмсли , Фонда Гордона и Бетти Мур и Фонда Альфреда П. Фонд Слоана профинансировал работу, которая привела к расширению возможностей основных инструментов Jupyter, а также к созданию JupyterLab. [19]
В ноябре 2022 года GitHub объявил, что JupyterLab будет доступен на его онлайн-платформе для кодирования под названием Codespace. [20]
В августе 2023 года было выпущено расширение Jupyter AI. Это расширение включает генеративный искусственный интеллект в блокноты Jupyter, позволяя пользователям объяснять и генерировать код, исправлять ошибки, суммировать контент, запрашивать информацию о своих локальных файлах и создавать полные блокноты на основе подсказок на естественном языке. [21]
JupyterHub — это многопользовательский сервер для Jupyter Notebooks. Он предназначен для поддержки множества пользователей путем создания, управления и проксирования множества отдельных серверов Jupyter Notebook. [22]
Документ Jupyter Notebook представляет собой файл JSON , соответствующий версионной схеме, обычно заканчивающийся расширением «.ipynb». Основными частями блокнотов Jupyter являются: метаданные, формат блокнота и список ячеек. Метаданные — это словарь определений данных для настройки и отображения записной книжки. Формат ноутбука — это номер версии программного обеспечения. Список ячеек — это различные типы ячеек для Markdown (отображение), кода (для выполнения) и вывода ячеек типа кода. [23]
Хотя JSON является наиболее распространенным форматом, можно отказаться от некоторых функций (например, хранения изображений и метаданных) и сохранять блокноты как документы с уценкой, используя такие расширения, как JupyText. [24] Jupytext часто используется в сочетании с контролем версий, чтобы упростить сравнение и объединение блокнотов.