Project Jupyter

freies Softwareprojekt und die Organisation dahinter

Project Jupyter ([ˈdʒuːpɪtər) ist der Herausgeber von Softwareprodukten für interaktive wissenschaftliche Datenauswertung und wissenschaftliche Berechnungen. Der Name Jupyter bezieht sich auf die drei wesentlichen Programmiersprachen Julia, Python und R und ist auch eine Hommage an Galileis Notizbucheinträge zur Entdeckung der Jupitermonde, bei denen Galilei Beobachtungen und Messdaten zusammen mit Metadaten darstellte. Project Jupyter hat die Produkte Jupyter Notebook, JupyterHub und JupyterLab entwickelt.

Project Jupyter
(Jupyter)
Logo
Rechtsform Non-Profit-Organisation
Gründung 2014
Gründer Fernando Pérez
Zweck Unterstützung interaktiver wissenschaftlicher Datenauswertungen und wissenschaftlicher Berechnungen mit allen Programmiersprachen.[1]
Website https://jupyter.org/

Philosophie

Bearbeiten

Herausgeber ist eine Non-Profit-Organisation, die gegründet wurde, um Open-Source-Software, offene Standards und Services für interaktives Arbeiten mit Dutzenden Programmiersprachen zu entwickeln.[2] Das Projekt Jupyter unterstützt interaktive wissenschaftliche Datenauswertungen und wissenschaftliche Berechnungen mit allen Programmiersprachen durch die Entwicklung von Open-Source-Software. „Jupyter wird immer 100 % Open-Source-Software sein, für alle frei zu benutzen unter einer modifizierten BSD-Lizenz.“[1]

Geschichte

Bearbeiten

Im Jahr 2014 gab Fernando Pérez eine Ausgliederung aus dem Projekt IPython bekannt mit dem neuen Namen Project Jupyter.[3] IPython existiert weiter als Python Shell und Kernel für Jupyter, während das Notebook und andere sprachunabhängige Teile nun unter dem Namen Jupyter weiterentwickelt werden.[4] Jupyter ist sprachunabhängig und unterstützt die Ausführung vieler verschiedener Sprachen wie Julia, R, Haskell, Ruby und Python (über den IPython-Kernel).[5]

Im Jahr 2015 gaben GitHub und das Project Jupyter bekannt, dass das Dateiformat des Jupyter Notebooks auf der GitHub-Plattform unterstützt wird.[6][7]

Produkte

Bearbeiten

Jupyter Notebook

Bearbeiten
 
Oberfläche von Jupyter Notebook

Jupyter Notebook (früher IPython Notebooks) ist eine Webanwendung, die Jupyter-Notebook-Dokumente erstellen und bearbeiten kann.

Ein Jupyter-Notebook-Dokument ist ein JSON-Dokument, das aus einer Liste von Eingabe- und Ausgabezellen besteht. Es kann jeweils Code, Text und Graphen oder Diagramme (Plots) enthalten. Es ist versioniert. Seine Dateiendung ist „.ipynb“. Ein Jupyter-Notebook-Dokument kann in verschiedene Formate konvertiert und ausgegeben werden, z. B. HTML, PDF, LaTeX und Folien für Präsentationen.

Die Webanwendung Jupyter Notebook bietet im Browser ausgeführt eine Schleife aus Eingabe, Ausführung und Ausgabe. Sie baut dabei auf weit verbreitete Open-Source-Programmbibliotheken auf:

  • IPythonKommandozeileninterpreter zum interaktiven Arbeiten mit der Programmiersprache Python
  • ZeroMQ – asynchrone Nachrichtenaustauschbibliothek für High-throughput computing
  • Tornado – nicht blockierender Webserver sowie ein einfaches Mikro-Webframework in Python
  • jQuery – JavaScript-Bibliothek, die Funktionen zur DOM-Navigation und -Manipulation zur Verfügung stellt
  • Bootstrap – Frontend-CSS-Framework mit Gestaltungsvorlagen für Navigations- und andere Oberflächengestaltungselemente
  • MathJax – JavaScript-Bibliothek, die mathematische Formeln und Gleichungen, die in LaTeX und MathML Markup geschrieben wurden, in Webbrowsern grafisch darstellt

Jupyter Notebook unterstützt verschiedene Programmiersprachen. Als Standard wird die Programmiersprache Python unterstützt. Hierzu wird es vom Team des Projekts Jupyter mit dem IPython-Programmiersprachen-Kernel, genannt: ipykernel, ausgeliefert. Die Entwickler-Community des Project Jupyter bietet verschiedene Kernel an, um die Programmierung bzw. interaktive Ausführung von Anweisungen in anderen Programmiersprachen zu unterstützen.[8]

Jupyter Kernel

Bearbeiten

Ein Jupyter Kernel ist ein Programm, das verschiedene Arten von Anfragen bearbeitet (Ausführung von Code, Code-Vervollständigung und Code-Inspektion) und Antworten zurückschickt. Da Kernels über ZeroMQ kommunizieren, können sie auf der gleichen Maschine oder auf anderen Maschinen im Netzwerk laufen. Kernels erkennen nicht, mit welchem Dokument sie verbunden sind, und können von vielen Clients aufgerufen werden. In der Regel ist ein Kernel für eine Programmiersprache ausgelegt.

Der Kernel für Python wird mit ausgeliefert. Im Dezember 2019 existierten 137 Kernels für verschiedene Programmiersprachen.[5]

JupyterHub

Bearbeiten

Ein JupyterHub ist ein Multi-User-Server für Jupyter Notebooks.[9]

JupyterLab

Bearbeiten

Das JupyterLab ist das Nachfolgeprodukt für die Benutzeroberfläche. Es bietet die Elemente des Jupyter Notebooks in einer flexiblen Benutzeroberfläche. Das erste Release wurde am 20. Februar 2018 angekündigt.[10]

Medienberichte

Bearbeiten
  • Am 11. Februar 2016 gab LIGO die erste Beobachtung von Gravitationswellen bekannt. Mit den Rohdaten wurden auch Jupyter Notebooks veröffentlicht, mit denen die Daten verarbeitet wurden, damit die Analyse der Daten nachvollzogen werden kann.[11]
  • Am 5. April 2018 veröffentlichte The Atlantic einen Artikel über die Bedeutung von Jupyter Notebooks und Mathematica Notebooks für zukünftige wissenschaftliche Veröffentlichungen.[12][13]

Auszeichnungen und Zuwendungen

Bearbeiten
  • 2012 erhielt Fernando Pérez den FSF Award für seine Arbeit an IPython, dem Vorgänger von Project Jupyter.
  • 2013 erhielt das IPython-Team eine Zuwendung von 1,15 Millionen US-Dollar von der Alfred P. Sloan Foundation. Hiermit wurde die frühe Arbeit finanziert, die zum Project Jupyter führte.
  • 2015 erhielt das Project Jupyter eine Zuwendung von 6 Millionen US-Dollar von The Leona M. and Harry B. Helmsley Charitable Trust, Gordon and Betty Moore Foundation und Alfred P. Sloan Foundation. Damit wurde die Weiterentwicklung der Jupyter Tools und die Neuentwicklung des JupyterLabs finanziert.
  • Am 2. Mai 2018 wurde dem Lenkungsausschuss des Project Jupyter der ACM Software System Award verliehen „für die Entwicklung einer Software, die einen langfristigen Einfluss hat, der sich als Beitrag zu Konzepten, kommerzieller Akzeptanz oder beidem widerspiegelt.“
Bearbeiten

Einzelnachweise

Bearbeiten
  1. a b Project Jupyter – About Us. 20. April 2018, abgerufen am 12. Dezember 2019 (englisch).
  2. Project Jupyter. Abgerufen am 13. November 2020.
  3. Project Jupyter. 8. Juli 2014, abgerufen am 12. Dezember 2019 (englisch).
  4. The Big Split™. 16. April 2015, abgerufen am 12. Dezember 2019 (englisch).
  5. a b Jupyter kernels. GitHub, 10. Dezember 2019, abgerufen am 12. Dezember 2019 (englisch).
  6. GitHub + Jupyter Notebooks = <3. GitHub, 7. Mai 2015, abgerufen am 12. Dezember 2019 (englisch).
  7. Rendering Notebooks on GitHub. Jupyter Blog, 7. Mai 2015, abgerufen am 12. Dezember 2019 (englisch).
  8. Jupyter Team: Kernels (Programming Languages). In: Jupyter Notebook. Project Jupytert, abgerufen am 28. August 2023 (englisch).
  9. What is JupyterHub? jupyter.org, abgerufen am 12. Dezember 2019 (englisch).
  10. JupyterLab is Ready for Users. Jupyter Blog, 20. Februar 2018, abgerufen am 12. Dezember 2019 (englisch).
  11. Use Python Notebook to Discover Gravitational Waves. IBM, 13. Februar 2016, abgerufen am 12. Dezember 2019 (englisch).
  12. Jupyter, Mathematica, and the Future of the Research Paper. paulromer.net, 13. April 2018, abgerufen am 12. Dezember 2019 (englisch).
  13. James Somers: The Scientific Paper Is Obsolete. In: The Atlantic. 5. April 2018, abgerufen am 6. Juli 2024 (englisch, Text hinter einer Bezahlschranke).