Ves de nouvelles pratiques


Alba Málaga, Nicolas Thiéry et Samuel Lelièvre

Recherche et enseignement mathématiques s'appuient de plus en plus sur des logiciels qui soutiennent la collaboration. Étant d'une complexité croissante, ces derniers reposent sur un développement collaboratif massif.

L’importance et la viabilité des logiciels libres

Par tradition et par besoin, les mathématiciens adoptent très tôt les principes de la science ouverte (logiciels, données, publications libres, voir Tangente Éducation 50, 2019). Le logiciel GAP (Groupes, algorithmes, programmation, GAP Group, 1986), fruit du travail de centaines de chercheurs depuis plus de trente ans, en est un exemple emblématique. L’émergence de langages de programmation de haut niveau, de bibliothèques, et de méthodologies de collaboration massive permet de combiner ces briques en des systèmes de calcul généralistes comme SageMath (The SageMath Developers, 2005, basé sur Python), démontrant la viabilité d’alternatives aux logiciels propriétaires ou non libres.

 

Une reconnaissance institutionnelle

La science ouverte atteint enfin, depuis quelques années, reconnaissance et soutien institutionnels. Le financement public européen de huit millions d’euros pour le projet OpenDreamKit (de 2015 à 2019 autour des logiciels libres de mathématiques alliés à l’écosystème Jupyter pour le calcul interactif) en témoigne.

Le financement public allemand du projet Oscar (pour les systèmes de calcul mathématique du futur, basé sur Julia (Bezanson, Karpinski, Shah et al., 2012)) va dans le même sens. Plus récemment, l’ingénieur d’étude Bill Allombert vient de se voir remettre (parmi d’autres personnels d’appui à la recherche) la médaille de cristal 2020 du CNRS, pour son travail de développement et de maintenance sur le logiciel libre de calcul arithmétique PARI/GP (The PARI Group, 1985), dont la communauté des utilisateurs est estimée à vingt-cinq mille personnes.

 

 

Une tendance de fond

Grâce aux avancées en matière de modularité et d’interopérabilité, on passe progressivement de logiciels développés en silo (chacun avec sa communauté et son environnement dédié) à des « écosystèmes d’écosystèmes ». Il est ainsi devenu aisé de rédiger et publier un document interactif instantanément utilisable en ligne par d’autres. À l’autre bout du spectre, les mêmes briques permettent à une institution de déployer pour ses usagers un service avec maints logiciels et ressources physiques, avec un choix d’interfaces familières, comme Jupyter (Fernando Pérez et al., 2015) ou RStudio (Joseph Allaire et RStudio Inc., 2011).

Cette tendance de fond à la collaboration massive réduit les barrières entre systèmes, entre domaines des sciences, entre développeurs et utilisateurs. Elle a néanmoins un coût : le paysage est complexe ! Toutefois, l’environnement Jupyter avec Python (Python Software Foundation, 1991) puis SageMath est l’un des points de départ pour commencer.

Précurseur depuis ses débuts, CoCalc (William Stein, 2013) permet l’édition simultanée de documents interactifs, notamment des feuilles Jupyter (dont l’édition simultanée sera à terme disponible dans JupyterHub aussi). Pour de la simple édition collaborative de textes mathématiques, on pourra se contenter de Hackmd (The Hackmd Team, 2015), HedgeDoc (Jacob Stanley, 2020) ou Overleaf (John Hammersley et John Lees-Miller, 2012), tout en discutant en visio via BigBlueButton (Richard Alam, 2007) ou Jitsi (Blue Jimp, 2011) et en griffonnant ensemble sur Tableaunoir (https://tableaunoir.github.io) de François Schwarzentruber (Irisa et ENS Rennes, 2020) ou sur le tableau intégré à BigBlueButton.

Pour la collaboration asynchrone et le partage de documents interactifs, il est recommandé d’apprendre un système de gestion de versions comme Git (Software Freedom Conservancy, 2005). On pourra suivre par exemple les formations en ligne de Software Carpentry.