De quoi l'informatique est-elle la science ?
« Dans quoi travaillez-vous ? »
« Dans l'informatique. »
« Ah, un technophile, quoi. Sans la physique et l'électronique, vous n'auriez rien pu faire. »
« Pas exactement, l'informatique, c'est une science. »
De quoi l'informatique est-elle la science ?
C'est une question qui peut venir à l'esprit lorsqu'on discute avec un professeur de mathématiques, un ingénieur informatique, ou même mamie Josette le dimanche à table. Et bien qu'elle prête à sourire, elle mérite une réponse sérieuse, sinon, comment justifier nos longs travaux de recherche, enfermés dans des laboratoires ?
La question amuse parfois, mais elle n'a rien d'anecdotique.
Citons, à l'inverse, Hal Abelson :
« L'informatique n'est pas vraiment à propos des ordinateurs, tout comme la physique n'est pas uniquement focalisée sur des accélérateurs de particules, la biologie ne concerne pas les microscopes et les boîtes de Pétri, et la géométrie ne concerne pas vraiment l'utilisation d'instruments d'arpentage.
La raison pour laquelle nous pensons que l'informatique est à propos d'ordinateurs est à peu près la même que celle pour laquelle les Égyptiens pensaient que la géométrie concernait les instruments d'arpentage : lorsqu'un domaine est à ses débuts et que vous ne le comprenez pas encore très bien, il est facile de confondre l'essence de ce que vous faites avec les outils que vous utilisez. »
Science appliquée à la machine ?
La principale objection, à mon sens, au statut scientifique de l'informatique vient de l'association quasi systématique entre informatique et ordinateur. Pourtant, contrairement à nos amis anglophones, le terme français renvoie au traitement automatique de l'information (information + automatique), et non à la science des ordinateurs (computer science) ; même si le mot informatics existe également.
Cette objection reste toutefois fragile, car l'informatique étudie bel et bien des systèmes d'information, qu'ils soient artificiels (comme les ordinateurs) ou naturels.
Même si l'informatique se limitait à l'application d'algorithmes sur une machine, cela ne suffirait pas à invalider son caractère scientifique. Une telle discipline irrigue d'ailleurs d'autres champs : la bio-informatique ou la physique fondamentale, par exemple, reposent sur des modèles calculatoires. Les simulations obtenues sont souvent très proches des phénomènes étudiés, sans que cela les rende moins pertinentes ou « purement construites ».
Plus une technique qu'un art ?
On peut également avancer que, dans les années 1950, les pionniers de l'informatique ont cru à une révolution qui n'en était pas vraiment une, et que le terme approprié serait plutôt technologie de l'information (IT). Selon cette vision, on ne verrait émerger que de la technique ou de l'art, jamais de la science à proprement parler.
Les aspects dits « scientifiques » relèveraient alors des mathématiques appliquées, voire, à la marge, de l'électronique ou de la physique.
Pour dépasser cette critique, il faut revenir à la question fondamentale de l'informatique. Dans Computing as a Discipline (1989), elle est formulée ainsi :
« Qu'est-ce qui peut être automatisé de façon efficace ? »
L'informatique combine en effet science, ingénierie et mathématiques dans un équilibre singulier. Mais son socle reste fidèle à une conception classique (baconienne) de la science : formuler des hypothèses, les tester, conserver les modèles explicatifs qui résistent à l'expérience afin de mieux comprendre le monde.
C'est précisément le terrain de l'informatique théorique.
Science de quoi, alors ?
On peut toujours discuter la notion même de science, distinguer science fondamentale et science appliquée, ou opposer sciences dures et sciences humaines (encore que la compréhension des contraintes d'un projet dépende parfois davantage de la psychologie que d'une analyse strictement formelle).
Les exemples d'une approche résolument « informatique » sont pourtant nombreux :
- Sciences cognitives : l'hypothèse centrale est que des comportements intelligents émergent d'un traitement de l'information au sein d'un système nerveux (ou d'un cerveau). Leur implémentation sur une machine permet souvent de valider immédiatement les hypothèses formulées.
- Recherche en processus de conception : il s'agit d'identifier l'origine des erreurs et des défauts afin de produire des modèles et des méthodes pour les éviter.
- Informatique expérimentale, notamment en algorithmique : on mesure les performances effectives des algorithmes sur des jeux de données concrets afin de confronter les prédictions temporelles et mémorielles; parfois au-delà de l'analyse asymptotique.
- IHM (Interaction Homme-Machine) : on étudie les relations entre l'humain et les processus informatiques avec lesquels il interagit.
Nous sommes ici pleinement dans ce que l'on attend d'une science exacte.
Reste alors la question des fondements :
à quelles lois, ou à quelles grandes questions, rattacher les différentes branches de l'informatique ?
L'exercice est délicat, mais loin d'être impossible.
De la même manière que la physique se décline en thermodynamique, mécanique des solides ou électromagnétisme, l'informatique gagne à être abordée de façon transversale. En reprenant la classification proposée par P. Denning, on peut distinguer les sous-disciplines suivantes :
Automatisation
- Comment passer le test de Turing ?
- Cette notion a-t-elle une utilité réelle ?
- Quelles sont les limites des systèmes experts ?
- Comment simuler une tâche cognitive ?
Calculabilité
- Tous les problèmes sont-ils solubles ?
- Tous sont-ils calculables ?
- Comment optimiser la compilation ?
- Quels algorithmes sont optimaux pour les problèmes usuels ?
Communication
- Peut-on transmettre une information avec moins de signes, sans perte ?
- Comment détecter les erreurs de transmission ?
- Comment échanger une information sensible dans un milieu public ?
Conception
- Comment éviter qu'un système masque de l'information à l'utilisateur ?
- Comment représenter un système selon plusieurs niveaux de conception ?
Interaction
- Comment éviter la famine dans les processus ?
- Comment prédire au mieux les temps de réponse et les capacités de traitement ?
- Comment authentifier un utilisateur sans introduire une complexité excessive ?
Pas convaincu ?
Vous n'êtes pas le seul. Cette conclusion ne fait pas l'unanimité parmi les informaticiens.
Certains, comme Abelson, Sussman ou Dijkstra, issus d'un héritage mathématique fort, préfèrent rattacher l'informatique aux mathématiques et rejettent le terme de science.
D'autres, plus technophiles (Zuckerberg ou Graham, par exemple) lui préfèrent les notions d'art ou de technologie.
Mais à mon sens, l'introduction de l'apprentissage de l'informatique dès le plus jeune âge, à l'école (enfin !) ou comme hobby, conduit progressivement à une remise en question de ces positions. La place centrale qu'occupe aujourd'hui l'informatique pousse de plus en plus les praticiens à expérimenter, et donc à adopter une lecture toujours plus scientifique de la discipline.