# Retour d'expérience: licences pour les logiciels de maths pures
Nicolas M. Thiéry
17 novembre 2015
Journée LOOPS: «Je code, je diffuse, oui mais comment ?»
---
# Logiciels pour les maths pures
- Algèbre
- Théorie des nombres
- Géométrie
- Calcul symbolique
- Mathématiques discrètes
- ...
--
## Des logiciels, pour quoi faire?
- Exploration informatique
- Vérification de conjectures
- Preuves mécanisées
- Assistants de preuves & preuves certifiées
- Travail collaboratif
- Enseignement
- Applications
--
## Micro historique
### 50's-80's
- Les mathématiciens écrivent du code ad-hoc pour leur recherche
- 1976: démonstration mécanisée du théorème des quatre couleurs
--
### 80's - 90's
- Systèmes généralistes commerciaux:
Maple, Mathematica, ...
- Systèmes libres spécialisés:
Maxima, GAP, PARI/GP, Singular, Macaulay, ...
- OVNIS:
Axiom, MuPAD, ...
### Début des années 2000
La frustration gagne la communauté
--
## 2005-2015: SageMath
- Une distribution des logiciels libres spécialisés
- Une bibliothèque Python:
- 1.5 M lignes code/doc/tests
- Interfaces et intégration
- Fonctionalités natives
- Un bloc-note :
- Source d'inspiration pour IPython/Jupyter
- En cours de migration vers celui-ci
- Un Environnement Virtuel de Recherche ([SageMathCloud](cloud.sagemath.org))
- 300 contributeurs
---
# Étude de cas: Sage-Combinat
## Constat dans mon domaine
- 95% des efforts de développement sont génériques
- Opportunité de mutualisation
## Mission de Sage-Combinat (2000-)
«Améliorer MuPAD/Sage comme boîte à outils extensible pour
l'exploration informatique en combinatoire algébrique, en fédérant et
mutualisant les efforts de développements des chercheurs»
http://combinat.sagemath.org
--
## Quelques éléments de stratégie
- Développé par des chercheurs pour des chercheurs
*Avec un usage plus large en vue*
- Développement décentralisé et international
*Garantie d'indépendance vis-à-vis des tutelles*
- Chaque ligne de code justifiée par un projet de recherche
Avec une vision à long terme (développement agile)
- Coeur du développement par des permanents
*Les doctorants se concentrent sur leurs propres besoins*
- Concepts et méthodologie de développement modernes
--
## Choix de la licence
- Licence libre:
- Choix éthique et pragmatique
- Mutualiser et diffuser
- Se protéger des tutelles
- MuPAD-Combinat: LGPL
- Sage-Combinat: GPL
---
# Licences dans SageMath
- sagemath: GPL
- Paquets standards: GPL-Compatible
- Paquets optionnels: toutes licenses
- Interfaces avec des logiciels privateurs
--
## Quelques problèmes rencontrés
- Logiciels sans licence
- Logiciels sous licence non standard:
- GAP3: moralement libre, mais développeurs dispersés voire décédés
- Nauty: interdit pour les militaires; donc non libre
- sagemathCloud: libérer ou pas le code?
--
# Évolution récente
- Reconnaissance des valeurs éthiques et pragmatiques du libre, par
les tutelles et les financeurs
- Projets Européens H2020 e-Infrastructure:
quasi-obligation de données, code, et publications libres
- Exemple: [OpenDreamKit](http://opendreamkit.org/)
--
# Résumé
## Spécificités du contexte
- Objectif principal:
mutualisation d'efforts de développements
- Code à forte composante métier
- Tradition de partage
- Opinions éthiques fortes
## Choix de licence
- Libre; typiquement GPL