Introduction

Smalltalk est un système qui, bien qu'apparaissant ancien, a souvent été pionnier dans de nombreux aspects que l'on retrouve aujourd'hui dans les IDE modernes, tels que l'inspection en temps réel, les boucles de feedback serrées et la navigation puissante.

Cependant, l'expérience quotidienne de travail dans Smalltalk est encore dominée par une métaphore qui n'a que peu changé en quarante ans : le System Browser à quatre panneaux.

Contexte Technique

Le System Browser, également appelé navigateur de classes, est conçu pour explorer la structure de classes du système. Dans la pratique, il s'agit de la principale surface de programmation dans la plupart des IDE Smalltalk.

Ce navigateur est composé de quatre panneaux et permet de visualiser les classes, les méthodes et les hiérarchies de manière organisée, offrant ainsi un contexte précieux pour la programmation.

Analyse et Implications

Même si le System Browser est considéré comme inégalé pour ce qui est de fournir du contexte, il pose également des problèmes d'expérience utilisateur (UX) plus larges.

En effet, la programmation en Smalltalk implique souvent de suivre le flux de messages entre les objets, ce qui peut rendre difficile la compréhension de la dynamique du système avec le seul System Browser.

Les développeurs ont besoin d'outils supplémentaires tels que les navigateurs de messages, les playgrounds, les inspecteurs et les débogueurs pour comprendre pleinement le comportement du système.

Perspective

Le véritable défi ne réside pas dans le remplacement du System Browser, mais dans l'amélioration de l'IDE dans son ensemble pour offrir une expérience plus fluide et intégrée.

Cela implique de résoudre les problèmes tels que la saturation de l'environnement, les outils Frankenstein, les outils ermites et les outils aliens, qui rendent difficile pour les développeurs de naviguer et de travailler de manière efficace dans l'écosystème Smalltalk.

Il est essentiel de poursuivre les améliorations itératives des outils existants et d'explorer de nouvelles approches pour répondre aux besoins changeants des développeurs et améliorer leur productivité.