Présentation de Pulsar

Lors de l'édition 2026 de l'European Smalltalk User Group (ESUG), Esteban Lorenzano a présenté Pulsar, un nouvel environnement de développement intégré (IDE) dédié à Pharo. L'outil se positionne comme une réponse directe aux tendances actuelles où les agents génératifs automatisent une partie du travail de programmation, tout en réaffirmant l'importance de rester proche du code source. Pulsar a d'ailleurs remporté le premier prix du concours ESUG 2026, ce qui souligne l'intérêt de la communauté Smalltalk pour une approche « coding‑first ».

Fonctionnalités techniques

Deux ajouts majeurs caractérisent la version pré‑alpha disponible sur le forge Smallworks. Premièrement, l'intégration des F‑strings dans Pharo, rendue possible par une implémentation qui exploite l'arbre syntaxique abstrait (AST) du langage. Cette prise en charge assure une interpolation de chaînes lisible, une intégration complète au débogueur et une compatibilité descendante, tout en ouvrant la voie à une adoption officielle dans Pharo 15. Deuxièmement, Pulsar propose une version Pharo de git‑rivera, un moteur de génération paresseuse de graphes de commits. Le système crée les nœuds du graphe uniquement à la demande, ce qui réduit la charge mémoire et accélère la navigation dans les historiques de projets de grande taille.

Ces deux fonctionnalités reposent sur des mécanismes distincts mais complémentaires. Le support des F‑strings nécessite une transformation de la source en AST avant l'exécution, ce qui implique un coût de compilation supplémentaire mais garantit une cohérence sémantique et une meilleure expérience de débogage. Le moteur git‑rivera, quant à lui, s'appuie sur un modèle de flux de données où chaque requête de visualisation déclenche la récupération différée des commits, limitant ainsi les accès disque et réseau aux seules portions réellement affichées.

Analyse des impacts et limites

Sur le plan fonctionnel, l'approche « coding‑first » de Pulsar renforce la visibilité du code pendant les sessions de travail, ce qui peut réduire les erreurs de navigation et améliorer la productivité des développeurs expérimentés. L'ajout des F‑strings, en particulier, simplifie la construction de messages dynamiques sans recourir à des concaténations manuelles, tout en conservant la traçabilité offerte par l'AST. Cependant, la dépendance à l'AST implique que toute modification syntaxique du langage Pharo devra être répercutée dans le parseur de Pulsar, ce qui peut ralentir les cycles de mise à jour.

Le moteur git‑rivera apporte une scalabilité appréciable pour les dépôts contenant des dizaines de milliers de commits, mais son comportement paresseux peut introduire des latences perceptibles lors du premier affichage d'une portion du graphe, surtout si le réseau est limité. De plus, la version actuelle de Pulsar reste en pré‑alpha ; la stabilité de l'IDE, la gestion des extensions et la compatibilité avec les outils tiers ne sont pas encore pleinement évaluées. Le projet invite donc les utilisateurs à « utiliser, casser, améliorer », afin de consolider les bases avant une version stable.