Jupyter

organisation à but non lucratif qui a développé les applications pour l'informatique interactive Jupyter Notebook, JupyterHub, et JupyterLab

Jupyter est une application web utilisée pour programmer dans plus de 40 langages de programmation, dont Python, Julia, Ruby, R, ou encore Scala[2]. C'est un projet communautaire dont l'objectif est de développer des logiciels libres, des formats ouverts et des services pour l'informatique interactive. Jupyter est une évolution du projet IPython. Jupyter permet de réaliser des calepins ou notebooks, c'est-à-dire des programmes contenant à la fois du texte, simple ou enrichi typographiquement et sémantiquement grâce au langage à balises simplifié Markdown, et du code, lignes sources et résultats d'exécution. Ces calepins sont notamment utilisés en science des données pour explorer et analyser des données.

Jupyter
Description de l'image Jupyter logo.svg.

Informations
Première version [1]Voir et modifier les données sur Wikidata
Type Organisation à but non lucratif
ProjetVoir et modifier les données sur Wikidata
Documentation jupyter.org/documentationVoir et modifier les données sur Wikidata
Site web https://jupyter.org/

Historique modifier

En 2014, Fernando Pérez annonce un projet dérivé d'IPython nommé Projet Jupyter[3]. IPython continue d'exister comme interpréteur de commande Python et noyau pour Jupyter, tandis que le notebook et d'autres composants d'IPython[4] qui ne sont pas liés à un langage sont passés sous le nom de Jupyter.

Le nom Jupyter fait référence :

  • aux trois principaux langages de programmation pris en charge par Jupyter, à savoir Julia, Python et R ;
  • aux carnets de notes de Galilée sur la découverte des lunes de Jupiter ;

Le projet Jupyter développe et maintient les logiciels interactifs Jupyter Notebook, JupyterHub et JupyterLab.

Philosophie modifier

La philosophie de fonctionnement du projet Jupyter est de soutenir la science interactive des données et le calcul scientifique dans tous les langages de programmation par le biais du développement de logiciels libres. Selon le site web du projet Jupyter, Jupyter sera toujours un logiciel 100% open-source, libre d'utilisation pour tous et publié sous les termes de la licence BSD modifiée.

Logiciels modifier

Jupyter Notebook modifier

Jupyter Notebook (anciennement IPython Notebooks) est un environnement de programmation interactif basé sur le Web permettant de créer des documents Jupyter Notebook. Le terme "notebook" peut faire référence à de nombreuses entités différentes, adaptées au contexte, telles que l'application web Jupyter, le serveur web Jupyter Python ou le format de document Jupyter.

Un document Jupyter Notebook est un document JSON. Il suit un schéma contenant une liste ordonnée de cellules d'entrée/sortie. Celles-ci peuvent contenir du code, du texte (à l'aide de Markdown), des formules mathématiques, des graphiques et des médias interactifs. Ce document se termine généralement par l'extension ".ipynb".

À l'aide de la commande « Télécharger sous » de l'interface web, du module nbconvert[5] ou l'interface de ligne de commande "jupyter nbconvert" dans un interpréteur de commande, un document Jupyter Notebook peut être converti en un certain nombre de formats ouverts de sortie : HTML, diapositives de présentation, LaTeX, PDF, ReStructuredText, Markdown, Python.

Afin de simplifier la visualisation des documents Jupyter Notebook sur le web, la bibliothèque nbconvert[6] est fournie en tant que service par l'application Jupyter NbViewer[7]. Cette application web peut prendre une URL pointant vers n'importe quel document disponible publiquement, le convertir à la volée en HTML et l'afficher à l'utilisateur.

Jupyter Notebook s'appuie également sur un certain nombre de bibliothèques open-source :

Jupyter Notebook peut se connecter à de nombreux noyaux, des environnements permettant de programmer et d'exécuter différents langages, dans la terminologie de Jupyter.

JupyterHub modifier

JupyterHub est un serveur multi-utilisateurs dédié : il est conçu pour prendre en charge de nombreux utilisateurs en gérant de nombreux serveurs Jupyter Notebook.

JupyterLab modifier

JupyterLab est une nouvelle interface utilisateur, publiée en 2018 et destinée à remplacer l'interface classique (Jupyter Notebook). Elle adjoint au carnet de notes classique de nombreux composants personnalisables (terminal, éditeur de texte, navigateur de fichiers, etc.), intégrés et utilisables en parallèle[9].

Jupyter Book modifier

Jupyter Book est un projet open source permettant de construire des livres et des documents à partir de matériel informatique. Il permet à l'utilisateur de construire le contenu dans un mélange de Markdown avec une version étendue de Markdown appelée MyST[10].

Noyaux modifier

Jupyter s'appuie sur un noyau IPython pour Python 2, un noyau IPython pour Python 3, IRkernel, un noyau pour le langage R, ainsi que le langage Scala basé sur R[11] et IJulia, un noyau pour le langage Julia[12], maintenus par les principaux développeurs du projet. Un grand nombre de noyaux sont développés et maintenus par la communauté des développeurs. Cela inclut IPyLua, noyau pour le langage Lua (il existe plusieurs noyaux Lua), IRuby, noyau pour le langage Ruby, Calysto Processing pour Processingetc.[2].

Versions modifier

Jupyter peut être installé sur un ordinateur personnel. JupyterHub peut être installé sur un serveur et permet de définir des comptes utilisateurs.

Logiciels dérivés modifier

La société Yhat a développé le logiciel Rodeo, un environnement de développement intégré pour Python inspiré du logiciel RStudio, qui reprend le code source de Jupyter[13].

Le projet Nteract développe une version de Jupyter en application de bureau en utilisant le système Electron[14].

JupyterLab s'appuie sur l’architecture de Jupyter et propose une interface utilisateur repensée et découpée en composants[réf. souhaitée].

Environnements Jupyter modifier

En ligne modifier

Windows modifier

Mac modifier

  • Anaconda

Linux modifier

  • Anaconda
  • Jupyter Lab[20]

Références modifier

  1. « https://jupyter.org/about » (consulté le )
  2. a et b (en) « Jupyter kernels », sur github.com.
  3. (en) « Project Jupyter », sur Speaker Deck (consulté le )
  4. ipython/ipython, IPython, (lire en ligne)
  5. jupyter/nbconvert, Project Jupyter, (lire en ligne)
  6. « nbconvert: Convert Notebooks to other formats — nbconvert 6.0.8.dev0 documentation », sur nbconvert.readthedocs.io (consulté le )
  7. « nbviewer », sur nbviewer.jupyter.org (consulté le )
  8. tornadoweb/tornado, tornadoweb, (lire en ligne)
  9. (en) « JupyterLab is Ready for Users », sur The Jupyter Blog, (consulté le ).
  10. (en) « MyST - Markedly Structured Text », sur myst-parser.readthedocs.io (consulté le )
  11. « IRkernel », sur irkernel.github.io (consulté le ).
  12. (en) « Julia kernel for Jupyter », sur github.com
  13. (en) « Rodeo », sur www.yhat.com
  14. (en) « interact: write your next code-driven story », sur nteract.io
  15. « Azure Notebooks »
  16. « Binder »
  17. « Colaboratory »
  18. « Jupyter Portable »
  19. « EDUPYTER »
  20. « Jupyter Lab »

Annexes modifier

Articles connexes modifier

Liens externes modifier