Le statut et l’importance des services logiciels [1] : les grandes idées lancées par Turing
par Jean-Luc Dormoy
Dans la théorie publiée par Turing en 1936, et contenant notamment la découverte de l’ordinateur, le logiciel est initialement conçu comme une description de machine permettant de substituer à la machine concrète un couple [machine générique, logiciel]. Il est donc un moyen, presque un pis-aller, à la place de la machine concrète. Il est en outre un artefact mathématique permettant la démonstration des résultats fondamentaux sur la puissance et les limites du calcul, en particulier sur l’indécidabilité de l’arrêt de la machine de Turing[1].
Rapidement cependant, le découvreur de ces concepts, Alan Turing, percevra l’importance en soi du logiciel. Ce n’est pas son rôle économique qu’il a mis en exergue, même si celui-ci était probablement implicite dans la nécessité qu’il percevait de construire un ordinateur universel. Pour un scientifique, l’élégance d’un concept ou d’une idée ainsi que sa portée sont les critères clés. La machine de Turing universelle, c’est-à-dire l’ordinateur, combine élégance des idées et puissance économique potentielle, et cela lui assurait d’un avenir grandiose. Seuls les esprits obtus demandaient à quoi pouvait bien servir de tels ordinateurs, voire s’ils pouvaient avoir une quelconque utilité. Turing avait raison, aussi bien dans son pronostic que dans sa démarche.
Une des grandes réponses fournies par Turing est qu’il va être possible de créer des machines intelligentes. Il en discutera dans plusieurs papiers dont le premier, Intelligent Machinery, a paru en 1948. La machine est universelle, l’intelligence est logicielle. Turing explique dans ce papier qu’on pourrait vouloir développer un robot imitant l’être humain, mais que la technologie de vision et d’actionnement de l’époque est probablement insuffisante, et en outre que le problème paraît extrêmement complexe – un robot devrait aussi avoir affaire avec la nourriture, le sexe, le sport. Il optera donc pour des activités purement intellectuelles, et notamment le jeu d’échec[2]. Turing jettera ainsi les bases des algorithmes[3] et méthodes mises en œuvre dans les logiciels de ce genre de jeu, qui ont connu leur sommet en 1997 avec Deep Blue, l’ordinateur et le programme ayant battu le champion du monde Gary Kasparov. En lisant les autres articles de Turing à ce sujet, on constate même qu’il a inventé la « bidouille » de programmation, permettant d’obtenir un effet désiré de façon empirique par réglage de paramètres, et sans fondement théorique bien clair.
Quelques années après la parution de ce livre, et la mort dramatique de Turing en 1954, le domaine sera rebaptisé Intelligence Artificielle en 1956 lors d’une conférence devenue historique à Dartmouth. Le premier programme d’Intelligence Artificielle résolvant effectivement un problème considéré comme relevant de l’intelligence sera le Logic Theorist de Newell et Simon en 1956 également, qui démontrait les théorèmes de logique des propositions des Principiae Mathematicae de Alfred Whitehead et Bertrand Russell, publiés en 1910-1913. C’est le même ouvrage qui avait contribué aux questionnements sur les fondements des mathématiques, aux résultats de Gödel en 1931 et 1934, puis à la découverte de l’ordinateur universel par Turing en 1936. La boucle historique était ainsi bouclée.
Depuis lors, l’informatique comme discipline a été traversée par ces deux courants de pensée : la Logique, et l’Intelligence Artificielle. On pourrait dire que la première en est sa rigueur, la seconde sa créativité. Parmi les fils ou filles intellectuels de Turing, chacun choisit le plus souvent une des deux voies de façon exclusive, comme si ces Abel et Caïn de la science du calcul étaient irrésistiblement attirés par le fratricide. On pourrait croire que la logique est du côté de l’infrastructure, et l’IA des services, mais ce n’est pas vrai, l’histoire montre que les grandes idées sur chacun des deux versants de la loi de Moore viennent de façon à peu près équirépartie des deux sources d’inspiration.
[1] Statuant qu’il n’existe pas de programme d’ordinateur à qui on pourrait donner un programme quelconque pour décider si l’exécution de ce dernier s’arrête ou au contraire boucle indéfiniment.
[2] Turing mentionne les jeux, l’apprentissage des langues (humaines), la traduction automatique de ces mêmes langues, la cryptographie, les mathématiques.
[3] Le mot algorithme étant une adaptation du nom propre Al Khorizmi, qui fut un savant Ouzbek ayant vécu au Xème Siècle à Boukhara durant l’un des apogées de civilisation de l’Islam.
Moore’s Law and the Future of [Technology] Economy de Jean-Luc Dormoy est mis à disposition selon les termes de la licence Creative Commons Attribution – Pas d’Utilisation Commerciale – Partage à l’Identique 3.0 non transposé.
Basé(e) sur une oeuvre à mooreslawblog.com.