Le code source, le logiciel c'est quoi ?
Le code source est l’élément de base de tout logiciel. Il s’agit du texte écrit dans des langages informatiques par un ou plusieurs auteurs humains. Il existe de nombreux langages qui correspondent à des besoins précis : C, Java, Python, R, Ocaml, Scilab, etc.
Un logiciel (ou programme d’ordinateur) est la description, dans un ou plusieurs langages informatiques, d’un processus de traitement de données que l’on souhaite faire réaliser par un ordinateur.
Pourquoi préserver les logiciels ?
Un logiciel de recherche a vocation à être conservé autant qu'un jeu de données dans la mesure où il traite les données relatives au projet. Même un simple script peut avoir une importance capitale si ce script traite un grand nombre de données ou des données centrales dans la découverte scientifique.
Le code de recherche est produit par des chercheurs, pas par des informaticiens. S'il exécute fidèlement les opérations qu'il est censé exécuter à la lecture de l'article de recherche, il mérite d'être connu et pourra servir à d'autres. Le code source de recherche n'a pas à être sophistiqué ou élégant. Il peut être répétitif et fruste. En revanche, le fait que les fonctions qu'il comporte soient commentées rendent son appropriation plus facile par d'autres chercheurs.
Les logiciels et code source (scripts) constituent une partie intégrante du patrimoine de la recherche. Ils permettent de reproduire des analyses, de partager des méthodes et de garantir la transparence des résultats rendant possible la reproductibilité de ceux-ci. Pourtant, ils sont souvent négligés en termes de documentation et d'archivage, ce qui compromet leur utilisation future.
La préservation de ce code source implique des pratiques rigoureuses, telles que :
Une documentation claire et exhaustive des codes et des dépendances.
La conservation sous la forme d'environnements virtuels ou d'images partageables du code (conteneurs...) de la pile logicielle qui est nécessaire pour assurer le bon fonctionnement du code source, ainsi que les dépendances qui relèvent du système d'exploitation pour lequel le code source a été conçu. Cela permet de faire fonctionner avec succès le code source sur des machines diverses.
L’utilisation de formats ouverts pour faciliter la réutilisation et l'adaptation.
Un archivage sur des plateformes dédiées, comme Software Heritage.
Solutions et bonnes pratiques
Stocker le code dans des formats texte brut (.txt, .py, .R, sh, etc.) en fonction du langage de programmation utilisé permet de garantir une lecture à long terme, même en l'absence de logiciels spécifiques.
Des plateformes comme GitHub, GitLab ou Bitbucket permettent de versionner et partager les logiciels. Les forges permettent un envoi rapide du code source vers des entrepôts ou des archives qui permettront de le conserver sur le temps long. Ces entrepôts (Zenodo) ou archives (Software Heritage) permettent en outre d'obtenir des identifiants uniques qui vont faciliter la citation du code et son identification pour les autres chercheurs et chercheuses.
Une documentation rigoureuse inclut les objectifs du logiciel, les instructions d'installation, les exemples d'utilisation et les limites éventuelles. Cette étape est essentielle pour une compréhension future.
Ajouter des informations sur le contexte du projet, les auteurs et les licences d'utilisation renforce la transparence. Ces informations se retrouvent habituellement dans un fichier README.
inclus dans le plan de gestion de données qui est renseigné sur la plateforme DMP OPIDoR.
Certains établissements offrent des outils et un accompagnement pour l’archivage des logiciels, comme les ateliers de la données ou les bibliothèques universitaires. A l'Université Rennes 2, vous pouvez demander un accompagnement auprès de l'atelier de la donnée ARDoISE : guichet-ardoise [at] groupes.renater.fr (guichet-ardoise[at]groupes[dot]renater[dot]fr)
Vers une reconnaissance institutionnelle
La reconnaissance institutionnelle des logiciels comme produits de recherche à part entière est un pas essentiel vers leur préservation. Intégrer la gestion des logiciels dans les politiques de science ouverte des universités pourrait contribuer à leur pérennité, à l'instar des initiatives visant à archiver les publications et les données de recherche.
Cette reconnaissance passe entre autres par la mise au point de prix pour récompenser les chercheurs qui mettent leur logiciel à disposition de telle sorte qu'ils soit réutilisable par une large communauté de chercheurs, à l'instar du Prix de la science ouverte pour le logiciel libre.
Pour en savoir plus, vous pouvez consulter des ressources comme Programming Historian qui détaillent des pratiques adaptées à la préservation logicielle. Ces initiatives montrent l'importance de structurer et d’anticiper la gestion des outils numériques dans les projets scientifiques.