Critique de l’absurdité de la programmation en langage naturel
- Dès les débuts des calculateurs automatiques, certaines personnes se sont montrées insatisfaites des méthodes de programmation exigeant un système de symboles formel
- La machine, en tant qu’« esclave fidèle » exécutant exactement les instructions reçues, applique aussi telles quelles les erreurs évidentes
- Certains espéraient que la machine adopte un comportement plus « raisonnable », au lieu d’ignorer les erreurs et d’exécuter malgré tout
Apparition et évolution des langages de programmation de haut niveau
- Le langage machine était perçu comme une interface dangereuse, avec très peu de détection d’erreurs et de redondance
- C’est dans ce contexte qu’ont émergé les langages de programmation de haut niveau, avec des progrès permettant d’éviter des résultats erronés grâce aux messages d’erreur
- Mais la programmation continue d’exiger des symboles formels et une précision méticuleuse
L’idée de programmer en langage naturel et les objections à cette approche
- Certains affirmaient que contrôler la machine en langage naturel rendrait l’usage plus confortable pour l’utilisateur
- Ils considéraient qu’à mesure que les machines devenaient plus complexes, cela pourrait aider l’utilisateur
- Pourtant, modifier l’interface ne rééquilibre pas la répartition du travail ; cela ajoute au contraire une charge supplémentaire de coopération et de communication
- En pratique, plus l’interface s’élargit, plus la charge de travail augmente des deux côtés, ce qui tend souvent à accroître la complexité
Exemples historiques en mathématiques et dans les systèmes symboliques
- Les mathématiques de la Grèce antique sont restées centrées sur le langage et les figures, ce qui a freiné leur développement
- Les mathématiques du monde islamique se sont elles aussi interrompues faute d’adopter un système symbolique
- L’Europe a connu un essor spectaculaire lorsque des figures comme Vieta, Descartes, Leibniz et Boole ont introduit des systèmes de symboles formels
Les avantages des langages formels et les limites du langage naturel
- Les langages formels permettent d’éviter de nombreuses erreurs à l’aide de quelques règles simples
- Les symboles formels rendent accessible aux étudiants un raisonnement logique autrefois réservé aux génies
- Le langage naturel est ambigu et se prête facilement à des formulations dénuées de sens, ce qui le rend inadapté à une expression logique sans erreur
Et si le langage naturel avait été l’unique mode d’entrée/sortie ?
- Si, dès le départ, on n’avait contrôlé les machines qu’en langage naturel, il aurait finalement fallu repasser par un processus de « bootstrap » nous ramenant à un système formel
- Ce processus aurait pu prendre des milliers d’années et aurait, au bout du compte, conduit à un langage formel
Régression éducative et phénomène de « néo-illettrisme »
- Au cours des dernières décennies, l’affaiblissement de la formation intellectuelle a conduit beaucoup de personnes à mal maîtriser même leur propre langue maternelle
- L’abondance de propos vides de sens dans les articles scientifiques, les rapports techniques ou les documents administratifs en apporte la preuve
- Ce phénomène laisse présager l’échec de la programmation en langage naturel
Intuition finale
- Construire une machine programmable en langage naturel serait sans doute aussi difficile que l’utiliser
1 commentaires
Discussion Hacker News
Certains estiment qu’il est devenu tendance de défendre les LLM (grands modèles de langage)
Une vieille citation de Hal Abelson revient à l’esprit
Le langage naturel a des limites issues des contraintes mentales humaines
Le langage machine est perçu comme une interface inutilement dangereuse
Au lieu de générer des programmes en langage naturel pour l’ordinateur, il faudrait les exécuter directement
Le langage naturel n’est pas adapté à la transmission de règles et d’instructions
Les langages conçus pour des domaines spécifiques apportent une précision et une clarté que le langage naturel ne peut pas offrir
Forth, PostScript et l’Assembly sont des langages de programmation « naturels » car ils correspondent bien à l’environnement d’exécution du code
Les méthodes de programmation avancées finiront par ressembler davantage à des langages de programmation qu’au langage naturel
Le fait que les erreurs apparaissent sous forme de messages d’erreur constitue une grande amélioration