’25 siècles de développement des mathématiques se sont accomplis sans le moindre ordinateur.’
’ L’ordinateur n’est qu’un puissant calculateur ’
Calculateur universel ( machine de turing == fonctions récursives primitives ; peut calculer tout ce qui est calculable ).
« Universel » est important, car l’utilisation d’un ordinateur n’est pas celle d’une calculette, on ne demande pas à l’ordinateur de résoudre un calcul, on programme un ordinateur pour qu’il puisse résoudre les calculs qui nous intéresse.
Programmer, c’est configurer la machine à calculer universelle pour qu’elle puisse effectuer un calcul précis donné. Or, le raisonnement par récurrence est le plus approprié pour ce type de tâche. Voir théorème de la correspondance de curry howard :
Je ne vais pas rentrer dans le détail, mais pratiquement toutes les disciplines scientifiques utilisent aujourd’hui la simulation, et la création de modèle informatique en vient presque à remplacer l’expérience de laboratoire. Même dans le cadre d’expérience en laboratoire, l’utilisation de l’électronique et de l’informatique reste extrêmement importante. C’est aussi le cas en économie, en financer, etc. En sciences cognitives, la métaphore esprit/ordinateur est simplement fondamentale.
’programmation orientée objets sont devenus fondamentaux.’
Oui, la POO a déjà permis de progresser un peu, et de tirer les langages découlant du basic ( la grande famille des C ) vers une programmation plus naturelle. A la rigueur, si vous n’utilisez plus du tout les IF pour utiliser uniquement du Pattern Composition, alors oui vous aurez presque une programmation fonctionnelle (qu’on soit clair : PERSONNE ne fait ça, à part dans les labos d’informatique). D’ailleurs, on remarquera bien la grande difficulté qu’on les étudiants en Informatique à passer de la programmation dite procédurale (cad : style BASIC pur ) à la programmation Orienté Objet. Ce passage n’existe simplement pas en langage fonctionnel (type LISP) et ne pose aucun problème y compris à des enfants de 11ans.
’sont d’ailleurs des langages orientés objets, avec des procédures, des fonctions, des classes, parfaitement propres’
J’ai bien rit.
’LISP ... il n’est pas très efficace car manipulant des objets ’lourds’ (listes chaînées) pour lesquels l’accès en mémoire n’est pas rapide. ’
Voilà, on est en plein dans le problème. Le conservatisme en Informatique repose toujours sur l’énoncé de la performance. En informatique : la performance n’est JAMAIS un problème, étant donné le développement extrêmement rapide du matériel.
BASIC a remporté sur LOGO précisément car cela coutait moins cher à l’époque de faire tourner du BASIC que du LOGO. Aujourd’hui, cela n’a plus aucun sens.
’Lisp est toujours un langage de prototypage’
je vous encourage à vous renseigner sur la programmation certifier sans bug, domaine dans lequel les français excellent (grâce entre autre, à Jean-Louis Krivine).
En « programmation récursive » il est possible de démontrer mathématiquement que le programme ne buggera pas. En C, on constate le Bug au moment où la fusée explose.
Bref, la seule véritable raison pour laquelle les programmeurs informatiques utilisent de mauvais langages, difficiles, lourds et sales comme le C, c’est pour la même raison qu’ils utilisent des claviers en QWERTY : par inertie. Voir les textes des Papert sur le sujet.
Bref, pour aller dans le sens de l’auteur de l’article : les ingénieurs actuels ne savent plus démontrer, ne maîtrisent plus les raisonnements par récurrence, et sont emprisonné dans des langages complexes, brouillons, et sales. Au lieu d’être capable de penser un programme comme une démonstration (et un programme est EXACTEMENT une démonstration), ils font comme des terminales S : ils utilisent des bouts de démonstrations qu’ils ont admis et les collent les unes aux autres sans trop comprendre le sens de ce qu’ils font.