Le développement et la généralisation des écrans graphiques et des environnements de développement d'interfaces conviviales permet de répondre aux besoins des utilisateurs-développeurs qui souhaitent développer des applications complexes avec des outils simples.
Mais là encore, ce concept (interagir avec un système à l'aide de questions-réponses, de menus à choix multiples et d'icônes graphiques représentant des métaphores des objets quotidiens) date du début des années 70 avec Smalltalk.
Les métaphores ont été très développés dans le domaine de la bureautique, principalement par Apple. Depuis, de nombreux standards existent.
Smalltalk offre une hiérarchie de classes pré-définies et un modèle de conception d'interfaces (MVC pour Model-View-Controller).
L'utilisateur agit sur la vue, le contrôleur récupère l'événement et réalise la connexion avec l'objet concerné dans l'application. Si l'application veut afficher un résultat, elle peut soit passer par le contrôleur, soit transmettre directement le message à la vue.
A un modèle peuvent être associées plusieurs vues différentes, contrôlées par un contrôleur unique, ou bien chacune par un contrôleur.
Une vue est une fenêtre dans laquelle les objets s'affichent. En Smalltalk, il y a trois types de fenêtres :
Du point de vue de Smalltalk, Vue, Contrôleur et Modèle sont des objets. Les méthodes associées à une vue sont des méthodes d'accès au contrôleur et des méthodes d'affichage. Les méthodes associées à un contrôleur sont des méthodes d'accès à la vue, des méthodes d'accès au modèle et des méthodes d'accès au détecteur d'événement. Les méthodes associées à un modèle sont des méthodes d'accès aux objets dépendants.