Projet Jupyter
==============

```{image} /assets/img/logo_jupyter_project.png
:width: 50%
:align: right
```

Le [projet Jupyter](https://jupyter.org/) propose des logiciels libres à 100 %, des normes ouvertes et des services web pour l'informatique interactive avec toute sorte de langages de programmation. Il a été initié par F. Pérez et B. Granger qui ambitionnaient à obtenir un environnement d'informatique interactive pour le langage Python dans l'esprit des environnements IDL (1977), Maple (1982), Matlab (1884) et Mathematica (1988) {cite:p}`granger_jupyter_2021`. 

Le projet Jupyter est créé en 2014 à partir du [projet IPython](https://ipython.org/), il en reprend les "IPython notebooks" et conserve le "IPykernel" comme l'un des noyaux d'exécution du code.

```{figure} /assets/img/logo_ipython_fond_blanc.png
:alt: Logo IPython
:width: 45%
:align: center
```

Dans son article publié dans la revue "Nature", Jeffrey M. Perkel {cite:p}`perkel_ten_2021` cite "IPython notebook" comme l'un des dix codes informatiques à avoir transformé la science (tableau ci-après). 

| Année | Code informatique majeur | Description |
| ----- | ------------------------ | ----------- |
|  1957 | Fortran compiler | le langage pionnier |
|  1965 | FFT (Fast Fourier Transform) | le traitement du signal |
|  1965 | Atlas of protein sequence and structure | le catalogueur de molécules |
|  1969 | Modèle de circulation générale| le leadeur de la prévision météo|
|  1979 | BLAS (Basic Linear Algebra Subprograms) | pionnier du calcul matriciel |
|  1987 | NIH Image | les bases de l'imagerie médicale |
|  1990 | BLAST (Basic Local Alignment Search Tool) | le chercheur de séquence |
|  1991 | arXiv.org | le serveur de preprints |
|  2011 | **IPython Notebook** | l'explorateur de donnée, mais pas que... |
|  2012 | AlexNet | deep learning basé sur les réseaux de neurones |

Une enquête auprès des lecteurs de la revue "Nature" place "IPython Notebook" en troisième place par ordre d'impact sur le travail des chercheurs.

```{figure} https://media.nature.com/lw767/magazine-assets/d41586-021-00075-2/d41586-021-00075-2_18964266.jpg
:width: 50%
:align: center

Résultat de l'enquête auprès des lecteurs de la revue "Nature" sur le code informatique qui a le plus d'impact sur leur travail (d'après {cite:p}`perkel_ten_2021`)
```

```{image} /assets/img/carnet_jupyter.png
:align: right
:width: 15%
```

Les documents de type **notebook** sont au centre du projet Jupyter. On peut les traduire par **carnets**, **cahiers** ou **bloc-notes**. Leur caractéristique principale est qu'ils alternent du texte en langage naturel avec du code en langage informatique avec les résultats produits par ce code (voir [Carnet (Notebook)](10_carnet.md)).


Le projet Jupyter propose :
- un **format ouvert** de carnet (nbformat)
- des **logiciels de création** open source de carnets pour les éditer et assurer leur rendu (Jupyter Notebook, Jupyter Lab)
- des plateformes de **visualisation** open source des carnets (nbviewer)
- des plateformes d'**utilisation interactive** open source des carnet (Binder)
- des plateformes d'**utilisation collaborative** open source des carnet (Jupyter Hub)
- des logiciels de **conversion** open source de notebooks vers
    - des documents statiques (nbconvert, RISE, Jupyter Book)
    - des applications web interactives (Voilà, Voici)
