Java dans le code source public français : 1 100 dépôts, dont la moitié pour Lutèce
Les administrations, universités et organismes de recherche français publient leur code source sur des forges publiques, et la Direction interministérielle du numérique (DINUM) en tient l'inventaire sur code.gouv.fr. Nous avons repris ce fichier pour répondre à une question simple : quelle place y tient Java, le langage de la JVM ? Réponse courte : la troisième, mais une place qui repose pour moitié sur un seul projet.
Chiffres clés (inventaire code.gouv.fr, version du 24 septembre 2025, dépôts hors copies « fork » et dont le langage principal est renseigné) :
- 7 400 dépôts ; Java est le langage principal de 1 100 d'entre eux, soit 14,9 %, derrière Python (18,0 %) et JavaScript (15,6 %).
- 556 de ces 1 100 dépôts Java appartiennent aux deux comptes GitHub du framework Lutèce. Sans eux, Java tombe à 8,0 % et passe au quatrième rang des dépôts actifs, derrière Python, JavaScript et TypeScript.
- Les autres langages de la JVM restent marginaux : 69 dépôts Scala, 15 Kotlin, 13 Clojure et 7 Groovy.
La source : l'inventaire de la DINUM
Le jeu de données « Inventaire des codes sources de logiciels publiés par des organismes publics » est produit par la DINUM et diffusé sur data.gouv.fr sous Licence Ouverte 2.0. Il recense les dépôts des comptes d'organisation déclarés par les organismes publics, sur GitHub et sur des dizaines de forges GitLab d'universités et d'instituts. Nous avons utilisé le fichier codegouvfr-repositories.csv, dont la dernière mise à jour publiée date du 24 septembre 2025 : c'est la version la plus récente disponible au moment où nous écrivons, le 10 novembre 2026. Les chiffres décrivent donc la situation de septembre 2025, pas celle d'aujourd'hui.
Le fichier compte 32 999 dépôts, dont 31 501 qui ne sont pas des copies (forks). Un point de méthode pèse sur tout le reste : le langage principal n'est renseigné que pour les dépôts hébergés sur GitHub. Les dépôts des forges GitLab (gitlab.inria.fr, gitlab.in2p3.fr, forges universitaires…) ont tous un champ vide. Nos pourcentages portent donc sur les 7 400 dépôts GitHub dont le langage est connu, et non sur l'ensemble du code public.
Les langages des dépôts publics
| Langage | Dépôts | Part | Sans Lutèce | Actifs* | Actifs sans Lutèce |
|---|---|---|---|---|---|
| Python | 1 334 | 18,0 % | 19,6 % | 673 | 673 |
| JavaScript | 1 155 | 15,6 % | 16,6 % | 370 | 346 |
| Java | 1 100 | 14,9 % | 8,0 % | 764 | 218 |
| TypeScript | 525 | 7,1 % | 7,7 % | 324 | 324 |
| HTML | 460 | 6,2 % | 6,7 % | 170 | 162 |
| Shell | 358 | 4,8 % | 5,3 % | 114 | 114 |
| Scala | 69 | 0,9 % | 1,0 % | 26 | 26 |
| Kotlin | 15 | 0,2 % | 0,2 % | 11 | 10 |
* Actifs : dépôts non archivés modifiés dans les douze mois précédant la version du fichier (depuis le 24 septembre 2024). Sur les 3 534 dépôts actifs, Java est en tête avec 764 dépôts (21,6 %) ; sur les 2 943 dépôts actifs hors Lutèce, il n'en compte plus que 218 (7,4 %), au quatrième rang.
Lutèce, ou pourquoi Java paraît si présent
Lutèce est un framework Java libre conçu pour construire des services publics en ligne : prise de rendez-vous, formulaires, gestion de la relation usager. Dans l'inventaire, ses deux comptes GitHub, lutece-platform (modules génériques) et lutece-secteur-public (applications métier), sont rattachés au site open source de la Ville de Paris. Ensemble, ils totalisent 556 dépôts Java, soit la moitié exacte des 1 100 dépôts Java de l'inventaire.
Ce poids s'explique par l'architecture du projet : chaque plugin ou module vit dans son propre dépôt. Le chiffre mesure donc une façon d'organiser le code plutôt qu'un volume de logiciel. Il explique aussi le bond de l'activité : 537 dépôts Lutèce ont été modifiés en septembre 2025, ce qui ressemble à une opération groupée (mise à jour de dépendances ou de métadonnées) plus qu'à 537 chantiers distincts. Sans Lutèce, la part de Java parmi les dépôts publics est à peu près celle de TypeScript.
Qui publie du Java, hors Lutèce
Les 1 100 dépôts Java appartiennent à 75 comptes d'organisation. Après les deux comptes Lutèce viennent :
- EsupPortail (59 dépôts), le consortium des universités qui développe des applications comme Esup-signature ;
- atlanmod (36), équipe de recherche en ingénierie dirigée par les modèles ;
- abes-esr (35), l'Agence bibliographique de l'enseignement supérieur ;
- ansforge (34), l'Agence du numérique en santé ;
- GIP-RECIA et DUT-Info-Montreuil (31 chacun), puis InseeFr (29).
Le profil est net : Java domine dans les grands systèmes d'information de gestion (universités, santé, statistique publique, archivage avec le programme Vitam) et dans quelques laboratoires de génie logiciel, tandis que la science des données et les startups d'État publient surtout en Python et en TypeScript. Pour une équipe d'exploitation, cela signifie que les JVM du secteur public tournent souvent dans des applications métier anciennes et durables, où les questions de fichiers de diagnostic contenant des données personnelles et de sobriété des serveurs (voir notre article sur le RGESN appliqué à un service Java) se posent concrètement.
Licences : un champ souvent vide
68,5 % des dépôts Java n'ont pas de licence renseignée dans l'inventaire, contre 44,5 % de l'ensemble des dépôts dont le langage est connu. Là encore, Lutèce pèse : 95,5 % de ses dépôts ont un champ vide, alors que le projet se présente comme libre. Hors Lutèce, la proportion tombe à 40,8 %. Un champ vide signifie seulement que la forge n'a pas détecté de fichier de licence reconnu ; il ne prouve pas l'absence de licence. Pour réutiliser un composant, vérifiez directement le dépôt.
Limites
- Date : instantané du 24 septembre 2025, le plus récent publié.
- Périmètre : seuls les comptes déclarés à la DINUM sont recensés ; le code non publié, de loin le plus abondant, n'y figure pas.
- Langage : un seul langage principal par dépôt, attribué automatiquement par GitHub ; les forges GitLab ne sont pas couvertes.
- Unité : un dépôt n'est pas un logiciel ; un projet découpé en modules compte plusieurs fois.
Méthode et données
Fichier téléchargé le 10 novembre 2026. Filtres : fork différent de true, champ language non vide. « Lutèce » désigne les dépôts dont le propriétaire est github.com/lutece-platform ou github.com/lutece-secteur-public. « Actif » : archived différent de true et updated_at postérieur ou égal au 24 septembre 2024. Les pourcentages sont arrondis au dixième.
Le tableau complet (15 premiers langages et langages de la JVM) est disponible en CSV : code-gouv-langages-2025.csv. Comme les données d'origine, il est réutilisable sous Licence Ouverte 2.0, avec mention de la source : DINUM, code.gouv.fr, et de cette page.
Sources
- DINUM, « Inventaire des codes sources de logiciels publiés par des organismes publics », data.gouv.fr, Licence Ouverte 2.0, fichier du 24 septembre 2025
- DINUM, « Liste des comptes d'organisation sur les forges logicielles du secteur public » (même jeu de données), pour le rattachement des comptes
- Site officiel du framework Lutèce, lutece.paris.fr