Jean-Baptiste Doderlein
Département Informatique | Promotion 2021
Live programming for continuous software engineering
Dir. Djamel Eddine Khelladi et Benoit Combemale
Résumé. Programmer, c’est écrire un texte statique (le code source) qui définit un comportement dynamique (l’exécution du programme). Cette dualité crée un défi fondamental : comment comprendre précisément les effets dynamiques de ce que l’on écrit ? Traditionnellement, les développeurs naviguent entre écriture, compilation et exécution dans un cycle itératif, créant une frontière cognitive entre la conception du code et l’observation de son comportement. Le live programming propose une approche radicalement différente. Les environnements de live programming offrent un retour immédiat sur l’exécution du programme pendant son édition, fusionnant ainsi les phases d’écriture et d’évaluation du code. Cette approche réduit la barrière entre le code et son comportement, facilitant la compréhension, l’exploration et l’apprentissage de la programmation. Malgré ses bénéfices évidents, le live programming reste peu adopté dans la pratique quotidienne des développeurs. Sa mise en œuvre se heurte à de nombreux défis comme la difficulté à définir des exemples représentatifs pour des fonctions complexes, la gestion de la migration d’état lorsque le code est modifié en cours d’exécution, et les contraintes de performance.
Cette thèse vise à développer un cadre théorique et des outils pratiques pour concevoir l’environnement de développement du futur. La recherche s’articule autour de trois axes : l’intégration des données d’exécution collectées en production ; l’élaboration de mécanismes de co-évolution entre le code source et son exécution ; et la généralisation de ces approches aux langages spécifiques à un domaine (DSL), en partant d’une implémentation pour Python puis en développant un cadre méthodologique applicable à divers contextes de programmation. Cette approche favorise une meilleure compréhension des programmes et encourage la conception de logiciels plus sobres grâce à la visibilité immédiate de l’impact des modifications sur les performances.
Motivation
« Ce qui me passionne dans la recherche, c’est sa capacité à lier rigueur scientifique et créativité. J’ai trouvé dans le domaine du live programming un équilibre stimulant entre théorie et pratique : il s’agit à la fois de concevoir des outils concrets pour améliorer l’expérience des développeurs, et de réfléchir à la manière dont on peut rendre visible l’exécution d’un programme, pour mieux l’apprendre ou le comprendre.
C’est cette double dimension, pratique et pédagogique, qui m’a donné envie de poursuivre dans cette voie. Mes stages, en France comme à l’étranger, m’ont permis d’en percevoir la richesse et le potentiel, et m’ont conforté dans l’idée que je souhaite m’engager pleinement dans la recherche.
C’est pour toutes ces raisons que j’ai choisi de m’engager dans cette thèse. »
Parcours
« Mon intérêt pour les langages de programmation remonte à mes années de classe préparatoire, où j’ai mené un projet personnel d’amélioration d’un environnement OCaml.
À l’ENS, j’ai pu approfondir cette orientation grâce à une formation structurée autour de la recherche, combinant cours spécialisés, séminaires et projets. Mon stage de M1 aux Pays-Bas, centré sur le live programming, m’a permis d’explorer concrètement ce domaine et de contribuer à une publication scientifique. J’ai poursuivi cette thématique dans mon stage de Master 2.
Durant ma 3e année à l’ENS, j’ai préparé et obtenu l’agrégation d’informatique, ce qui m’a apporté des compétences supplémentaires en pédagogie et en transmission des savoirs.
L’ensemble de ce parcours m’a permis d’acquérir une base solide pour aborder cette thèse.»
- Thématique(s)
- Débouchés, Recherche - Valorisation
Mise à jour le 19 août 2026
- Portfolio des thèses 2025Quelques illustrations de sujets