2 points par GN⁺ 2025-04-04 | 1 commentaires | Partager sur WhatsApp

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

 
GN⁺ 2025-04-04
Discussion Hacker News
  • Certains estiment qu’il est devenu tendance de défendre les LLM (grands modèles de langage)

    • À l’inverse, on se demande ce qui se passerait si l’on convertissait en langage naturel des projets de complexité intermédiaire à partir du code
    • On doute de la capacité à décrire suffisamment le comportement et les exigences du code source, et du fait qu’une description en langage naturel soit plus facile à comprendre
    • Ce sont surtout des applications simples qui sont montrées, car il est difficile de gérer la complexité et la précision
    • Il y a une raison pour laquelle le langage juridique n’est pas de l’anglais ordinaire
  • Une vieille citation de Hal Abelson revient à l’esprit

    • L’informatique n’est pas une science, et a peu à voir avec les ordinateurs
    • La révolution informatique est une révolution des façons de penser et des façons d’exprimer
    • Les mathématiques fournissent une notion précise du « quoi », et le calcul une notion précise du « comment »
  • Le langage naturel a des limites issues des contraintes mentales humaines

    • En tant que programmeur, ce n’est souvent qu’après l’implémentation du code qu’un problème ou une absurdité devient clair
    • Il faut plus de temps pour l’expliquer avec précision en langage naturel
  • Le langage machine est perçu comme une interface inutilement dangereuse

    • Des langages de programmation de haut niveau ont été développés pour réduire les erreurs
    • Rust est avantageux pour les développeurs car il signale clairement les erreurs
    • Les LLM donnent l’impression d’un jeu de devinettes à moitié intelligent
    • L’approche de Rust est préférée
  • Au lieu de générer des programmes en langage naturel pour l’ordinateur, il faudrait les exécuter directement

    • Des exemples de système graphique et de programme de morpion sont donnés
    • Il faudrait aussi des prompts pour un système de fichiers et un OS multitâche
    • On attend ce genre d’avancées au début du mois d’avril prochain
  • Le langage naturel n’est pas adapté à la transmission de règles et d’instructions

    • Les problèmes d’interprétation du droit américain sont cités en exemple
    • La clarté et la responsabilité des langages informatiques assurent un équilibre
  • Les langages conçus pour des domaines spécifiques apportent une précision et une clarté que le langage naturel ne peut pas offrir

    • Essayer l’inverse demande davantage de travail
  • Forth, PostScript et l’Assembly sont des langages de programmation « naturels » car ils correspondent bien à l’environnement d’exécution du code

    • La question est de savoir ce qui est « naturel » : pour l’humain ou pour l’ordinateur
    • L’IA ne rend pas le langage humain naturel pour les ordinateurs
    • L’IA inventera des langages adaptés à son propre environnement
  • Les méthodes de programmation avancées finiront par ressembler davantage à des langages de programmation qu’au langage naturel

    • Si l’on ne veut pas programmer, il faut une manière d’indiquer à une intelligence d’effectuer la programmation
    • Une méthode d’instruction avancée ressemblera davantage à un enseignement qu’au langage naturel
  • Le fait que les erreurs apparaissent sous forme de messages d’erreur constitue une grande amélioration

    • Certains trouvent plus pénible de ne pas pouvoir ignorer les messages d’erreur
    • Lorsqu’ils jugent les avantages d’un langage de programmation, certains assimilent la « facilité de programmer » à la facilité de se tromper