À la découverte de Jupyter, un logiciel scientifique libre aux millions d'utilisateurs

Un logiciel pas si gazeux
Logiciel 7 min
À la découverte de Jupyter, un logiciel scientifique libre aux millions d'utilisateurs
Crédits : courtneyk/iStock

Le logiciel Jupyter, dérivé en 2014 de iPython, a créé avec ses « carnets de notes » un standard du monde académique dans le partage des données et connaissances. Il a depuis été largement adopté par la communauté de la donnée. La conférence Open Science Days était l’occasion d’en apprendre davantage sur ses évolutions passées et à venir.

Jupyter, dont le nom découle des langages de programmation Julia, Python et R ainsi que des carnets de Galilée, est devenu un des logiciels les plus utilisés en recherche. 10 à 15 millions d'utilisateurs dans le monde, des versions customisées par des géants de la donnée comme Google, GitHub, Amazon ou IBM. En 8 ans, ce logiciel libre a conquis le monde des mégadonnées.

L'idée qui a fait son succès : permettre à n'importe quel scientifique ou développeur qui travaille sur des amoncellements (plus ou moins gros) de données d'avoir un outil efficace pour les manipuler et les présenter (par du texte ou graphiquement). Il doit aussi être accessible depuis un simple navigateur et utilisable avec n'importe quel langage de programmation.

Cet outil, d'abord créé par des chercheurs pour des chercheurs, permet de faciliter le processus de leur travail ; de la phase exploratoire jusqu'à sa présentation. Le concept vient notamment du projet IPython Notebook, créé en 2011 par les physiciens Fernando Pérez et Brian Granger.

Mais leur solution ne permettait d'utiliser qu'un seul langage : Python. En 2014, Fernando Pérez propose de faire évoluer le projet vers un logiciel qui soit « agnostique » au langage de programmation, c'est-à-dire pouvant être utilisé quel que soit le langage choisi. Le logiciel Jupyter et son interface Notebook sont nés. Et très vite la communauté scientifique l'adopte.

Une norme scientifique de facto

Pour résumer, Jupyter Notebook est une interface web permettant de créer des documents interactifs avec du texte riche, des images, mais aussi des fragments de codes (en anglais « snippets ») exécutables pouvant afficher eux-mêmes une interface graphique et de la visualisation des données.

L'outil remplit parfaitement sa mission, de façon tellement efficace que les chercheurs – qui doivent constamment travailler sur des données et présenter le travail à leurs collègues – l'adoptent. L’aspect logiciel libre est un plus indéniable.

Déjà en 2018, soit quatre ans seulement après sa création, la revue scientifique Nature publie un article détaillant « Pourquoi Jupyter est le carnet de notes informatique de prédilection des spécialistes des données ? ». L'ingénieure en mécanique et en astronautique à l'Université George Washington, Lorena Barba, y explique que « pour les scientifiques des données, Jupyter s'est imposé comme une norme de facto ».

La plupart des projets scientifiques utilisant massivement des données, comme ceux en astrophysique ayant permis de créer une image d'un trou noir en 2019 ou de découvrir les ondes gravitationnelles en 2016, partagent leurs notebooks (carnets de notes) sur GitHub. Selon les responsables du projet, une dizaine de millions se trouvent actuellement sur la plateforme de partage de code.  «  Que nous ayons apporté une petite contribution à ces projets est extrêmement gratifiant » déclarait Fernando Pérez à Nature en 2021.

Dès le début, le projet est financé par la fondation NumFOCUS, créée quelques années avant entre autres par les créateurs des bibliothèques python NumPy, Astropy, Matplotlib, SciPy et Fernando Pérez. Cette fondation à but non lucratif est maintenant alimentée par une bonne partie des géants du numérique comme Microsoft, Amazon, Google, IBM, NVIDIA et Bloomberg.

Le monde de la donnée séduit

Car les chercheurs ne sont pas les seuls à être séduits par Jupyter. Les entreprises du numérique y voient aussi un excellent outil de présentation des données. En effet, derrière les interfaces de Google Colab, Bloomberg Bquant, IBM Watson Studio, GitHub Codespaces ou encore AWS Sagemaker, on retrouve Jupyter. Chacun peut l'utiliser en adaptant l'interface graphique aux particularités des usages de ses clients.

Il n'en faut pas moins pour que ces différentes sociétés mettent la main au portefeuille pour contribuer et demandent à des entreprises de l'écosystème de Jupyter, comme Quansight ou la française QuantStack, de développer des fonctionnalités qui sont reversées dans le code de la communauté.

« Ces derniers mois, QuantStack est responsable d'environ 90 % du code de Jupyter Lab [l'interface graphique qui a remplacé Jupyter Notebook depuis quelques années, ndlr] », explique Sylvain Corlay, président de l'entreprise QuantStack.

D'autres acteurs du numérique demandent à ces entreprises spécialistes de Jupyter le développement de plugins pour l'adapter à l'édition de photos ou le design assisté par ordinateur (en anglais « Computer Aided Design », CAD).

Et adoption dans le milieu scolaire

En France, Jupyter a fait des émules jusque dans le secondaire où on apprend à coder. Le projet Capytale permet aux élèves des académies françaises de se connecter à une interface graphique et de se familiariser au code en utilisant Jupyter.

La centralisation du service sur un serveur de chaque académie permet à l'équipe enseignante de ne pas avoir à gérer l'administration et de se passer de toute installation de logiciel côté élèves. Un module permet aussi aux enseignants de commenter et de transmettre aux élèves leurs notes.

De plus en plus collaboratif

Au départ, le projet était pensé en se mettant à la place d'un seul chercheur qui voulait créer un projet scientifique. Mais depuis l'utilisation massive de Google Doc et d’autres outils d'édition en ligne, « il y a une attente naturelle pour que toute édition en ligne soit collaborative », estime Sylvain Corlay.

Jupyter intègre cette possibilité depuis sa version 3 publiée il y a deux ans. Mais ce ne fut pas une mince affaire de faire la bascule d'un outil mono-utilisateur à une interface où plusieurs collaborateurs peuvent travailler en même temps sans perdre le travail de personne.

« Nous avons dû revoir complètement le modèle objet de Jupyter autour du document et le baser sur une technologie qui s'appelle le CRDT (Conflict-free replicated data type). Cette structure de données est capable d'accepter des patchs dans n'importe quel ordre et de garantir qu'il y a une cohérence finale du résultat, que chacun, en résolvant les conflits localement et non de manière centralisée, aboutisse sans ambiguïté toujours au même résultat. Cela permet de ne pas avoir de serveur unique qui détient la source de vérité et auquel tout le monde doit se référer », expliquait Sylvain Corlay à la conférence Open Science Days qui se déroulait à Grenoble jeudi 15 décembre.

La version 4 de Jupyter devrait consolider cette fonctionnalité qui manque encore pour l'instant de stabilité. Aucune date n’est annoncée pour le moment, mais elle ne devrait plus trop tarder.

JupyterLite, en local dans le navigateur

Depuis 18 mois, une nouvelle version a été publiée : « JupyterLite ». Comme son nom l'indique, elle est prévue pour les projets les moins gourmands en calculs. Et pour cause, le noyau, compilé en WebAssembly, s'exécute directement dans le navigateur de l'utilisateur, plus besoin d'un aller-retour vers un serveur pour gérer ses « notebooks ».

Évidemment, elle ne pourra pas être utilisée pour des projets d'astrophysique demandant des calculs très lourds, mais elle évite d'avoir besoin d'un serveur puissant et permettra peut-être à des projets comme Capytale de pouvoir être utilisés dans des pays qui n'ont pas les moyens d'installer de gros serveurs pour l'éducation.

Sylvain Corlay constate par contre un déséquilibre entre le nombre de personnes qui maintient le logiciel et le nombre d'utilisateurs. La prochaine conférence internationale « Jupyter Con » aura lieu à Paris à la Cité des Sciences du 10 au 12 mai prochain. L'événement pourra peut-être être l'occasion de rééquilibrer un peu la balance.

Vous n'avez pas encore de notification

Page d'accueil
Options d'affichage
Abonné
Actualités
Abonné
Des thèmes sont disponibles :
Thème de baseThème de baseThème sombreThème sombreThème yinyang clairThème yinyang clairThème yinyang sombreThème yinyang sombreThème orange mécanique clairThème orange mécanique clairThème orange mécanique sombreThème orange mécanique sombreThème rose clairThème rose clairThème rose sombreThème rose sombre

Vous n'êtes pas encore INpactien ?

Inscrivez-vous !