Contexte historique
Dans les premières décennies de l’informatique, l’interaction se faisait directement en code machine, un format sans redondance et donc très exposé aux erreurs humaines. Face à ce risque, les langages de haut niveau ont été créés, apportant notamment des messages d’erreur qui permettent de détecter plus tôt les fautes de syntaxe. Dijkstra rappelle que, même si ces messages ont parfois été perçus comme irritants, ils constituent une amélioration mesurable par rapport à l’exécution silencieuse d’instructions erronées.
Limites de l’interface en langage naturel
L’idée de programmer en langue maternelle implique de transférer une part importante du raisonnement vers la machine. Dijkstra souligne que cette approche augmenterait la complexité interne du système, car le processeur devrait analyser et interpréter des structures linguistiques riches. L’expérience montre que chaque changement d’interface peut accroître le travail des deux parties, parfois de façon drastique, ce qui explique la préférence actuelle pour les interfaces étroites où les responsabilités sont clairement délimitées.
Rôle des symboles formels
Le texte cite l’histoire des mathématiques comme illustration : la mathématique grecque, restée verbale, s’est enlisé, tandis que l’algèbre islamique, après une tentative symbolique timide, est retombée dans la rhétorique. Ce n’est qu’avec l’avènement de symboles formels – Vieta, Descartes, Leibniz, Boole – que les mathématiques ont pu se libérer des ambiguïtés du langage naturel. De la même façon, les symboles de programmation imposent un petit nombre de règles simples, rendant possible la détection automatique du non‑sens.
Implications pour la conception future
Si l’on imaginait un monde où le seul moyen d’alimenter un ordinateur serait le langage naturel, Dijkstra estime que le développement de l’informatique aurait nécessité plusieurs millénaires pour atteindre une interface utilisable. Cette hypothèse repose sur le constat actuel d’une « nouvelle illettrisme » : la maîtrise du langage écrit diminue, rendant encore plus difficile la création d’un système fiable basé sur le texte libre. En conclusion, la programmation en langage naturel apparaît comme un défi technique dont la résolution demanderait des avancées bien au‑delà de la simple amélioration des parseurs, et non comme une solution immédiate pour alléger la charge du programmeur.