Le problème majeur des langages de programmation est leur sémantique trop basse, et aussi leur inadéquation à la conception intuitive du monde.
Quel que soit le paradigme, le problème est à peu près le même : on pense en terme de "termes" ou de case mémoire contenant des données qu'il faut manipuler, transmettre via des canaux, etc...
L'ordinateur se programme de cette façon parce que les langages de programmation ne sont qu'une série de sucre syntaxique qui descendent directement des câblages à la main des premières machines construites à la sortie de la seconde guerre.
Reconnaissons quelques inventions majeures : L'objet (Simula/Smalltalk), la programmation logique/par contrainte, l'inférence de type (Caml).
L'humain qui programme doit donc, dans chaque paradigme, penser dans cette logique de "terme" (en langage fonctionnelle et logique) ou de zone mémoire que l'on va faire manipuler par une suite d'instruction qui manipules ces termes/zones de mémoire.
Un humain ne conçoit pas intuitivement le monde ainsi que le traitement de données qui en sont une représentation, de cette façon.
Pour un humain, le monde est un système multi-agent où les agents ont des croyances/connaissances, des désirs, des intentions. On a tendance à prêter des intentions aux choses qui nous entourent ("Putain de lacet à la con, tu va bien vouloir te défaire ???!!!! T'as décidé de m'emmerder hein ??!?"). Observez une heure, vous verrez ;-)
De plus, ces agents s'inscrivent dans un espace-temps. On a tendance à étendre cette notion d'espace-temps un peu partout : quand on stocke un fichier dans une arbo, il y a une notion de localisation dans l'espace, psychologiquement.
Il nous arrive de mélanger les notions : "c'est assez loin dans le temps, j'ai du mal à me souvenir", certaines langues du pacifique mélangent d'ailleurs cette notion de loin/proche qui s'applique indifféremment au temps ou à l'espace.
Le temps et l'espace n'est pas représenté explicitement dans les langages, donc des choses qui peuvent être simple à expliquer peuvent facilement être difficile à programmer.
Et quand ces choses sont elles-mêmes complexes, ça peut devenir très très complexe !
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker
# Sémantique trop bas niveau
Posté par Ontologia (site web personnel) . En réponse au journal Programmation : la complexité c'est le mal. Évalué à 5.
Le problème majeur des langages de programmation est leur sémantique trop basse, et aussi leur inadéquation à la conception intuitive du monde.
Quel que soit le paradigme, le problème est à peu près le même : on pense en terme de "termes" ou de case mémoire contenant des données qu'il faut manipuler, transmettre via des canaux, etc...
L'ordinateur se programme de cette façon parce que les langages de programmation ne sont qu'une série de sucre syntaxique qui descendent directement des câblages à la main des premières machines construites à la sortie de la seconde guerre.
Reconnaissons quelques inventions majeures : L'objet (Simula/Smalltalk), la programmation logique/par contrainte, l'inférence de type (Caml).
L'humain qui programme doit donc, dans chaque paradigme, penser dans cette logique de "terme" (en langage fonctionnelle et logique) ou de zone mémoire que l'on va faire manipuler par une suite d'instruction qui manipules ces termes/zones de mémoire.
Un humain ne conçoit pas intuitivement le monde ainsi que le traitement de données qui en sont une représentation, de cette façon.
Pour un humain, le monde est un système multi-agent où les agents ont des croyances/connaissances, des désirs, des intentions. On a tendance à prêter des intentions aux choses qui nous entourent ("Putain de lacet à la con, tu va bien vouloir te défaire ???!!!! T'as décidé de m'emmerder hein ??!?"). Observez une heure, vous verrez ;-)
De plus, ces agents s'inscrivent dans un espace-temps. On a tendance à étendre cette notion d'espace-temps un peu partout : quand on stocke un fichier dans une arbo, il y a une notion de localisation dans l'espace, psychologiquement.
Il nous arrive de mélanger les notions : "c'est assez loin dans le temps, j'ai du mal à me souvenir", certaines langues du pacifique mélangent d'ailleurs cette notion de loin/proche qui s'applique indifféremment au temps ou à l'espace.
Le temps et l'espace n'est pas représenté explicitement dans les langages, donc des choses qui peuvent être simple à expliquer peuvent facilement être difficile à programmer.
Et quand ces choses sont elles-mêmes complexes, ça peut devenir très très complexe !
« Il n’y a pas de choix démocratiques contre les Traités européens » - Jean-Claude Junker