# Épistémologie de l'informatique

L'épistémologie de l'informatique est la branche de l'épistémologie, parmi les épistémologies disciplinaires, qui prend pour objet d'étude l'informatique en tant que science pour en déterminer son épistémologie, c'est-à-dire, d'une part son ou ses objet(s), ses principes, ses concepts fondamentaux, ses théories et résultats, i.e. ce qui la constitue ; d'autre part ses modes de construction de nouvelles connaissances, ses processus d'inférence et d'émergence de nouveaux concepts, les éléments à l'origine de ses évolutions, i.e. ce qui la fait progresser ; et enfin, ses fondements, son origine, sa portée objective, i.e. ce qui la justifie dans le concert des sciences.
L'épistémologie de l'informatique cherche donc à répondre à plusieurs questions, en reprenant la démarche de Jean-Louis Le Moigne :
* à quoi l'informatique s'intéresse-t-elle ? (question gnoséologique) ;
* comment l'informatique procède-t-elle pour connaitre ou engendrer son objet ? (question méthodologique) ;
* de quelle manière l'informatique valide-t-elle ses résultats ?

## Objets de l'informatique

À l'intersection des définitions de l'informatique données par les auteurs modernes, trois objets apparaissent. Non pas un, mais trois ; un seul ne semblant pas suffire, la présence des autres semblant nécessaire à la définition de l'ensemble. Il s'agit, dans l'ordre du plus abstrait au plus concret, des concepts suivants :
* le concept d'information ;
* le concept d'algorithme ;
* le concept de machine.
Selon d'autres auteurs, on peut ajouter les objets ou concepts suivants, parfois spécifiques à l'informatique :
* concept de simulation informatique ;
* concept de complexité ;
* notion de bug ;
* notion de langage.

### Algorithmes

Des trois objets principaux de l'informatique, le plus évident est l'algorithme. Et souvent, effectivement, l'informatique est ainsi réduite à l'algorithmique, science des processus systématiques de résolution, par le calcul, d'un problème. Une science associée au verbe faire. Les termes traitement, calcul, automatisme, processus, ... sont parfois aussi employés.
Pour Donald E. Knuth, la science informatique naissante aurait dû s'appeler ainsi "algorithmics". Cependant, l'algorithmique existait avant l'informatique, avant l'apparition des premières machines et considérée indépendamment de l'existence de ces machines, c'est une discipline que nombreux considèrent comme pouvant faire partie des mathématiques (c'est-à-dire, n'introduisant pas un nouveau paradigme scientifique, ayant la même épistémologie que les mathématiques).
Si l'informatique n'est pas la science des algorithmes et seulement des algorithmes, il faut tout de même constater l'omniprésence de cette notion dans toutes les branches de l'informatique (comme souvent aussi la notion de langage). Des couches les plus basses des machines, jusqu'aux abstractions les plus élevées de la notion de problème, on retrouve des algorithmes. La machine est un algorithme physique (électronique), un problème ou une classe de problèmes est considéré vis-à-vis d'algorithmes.

### Informations

Le terme « informatique » fait la part belle à la notion d'information et par suite à la notion de langage formel pour représenter et manipuler ces informations. Mais il faut être plus précis, il existe une science de l'information, qui n'est pas l'informatique, une science de l'information et de la communication, même. Ce qui caractérise l'informatique, c'est une information numérique et par certains côtés abstraite et symbolique (ce qui fait l'une de ses forces). Ce n'est plus une information analogique. Selon von Neumann, le succès, l'insolent succès de l'informatique, vient en particulier de ce passage d'un univers analogique, à un univers numérique : dans la réduction, à l'infini, du rapport bruit/signal. Dans l'univers analogique, les gains du rapport signal/bruit sont de plus en plus coûteux à force que l'on progresse ; dans l'univers numérique, c'est l'inverse.
Si les notions de codage, de représentation de l'information, de langages sont souvent présentes en informatique, elles sont également souvent omises, comme implicite, comme s'il n'était pas nécessaire de les préciser particulièrement.
En anglais, deux vocables sont utilisés pour nommer l'informatique (le terme 'informatics' est peu utilisé, à l'origine il s'agissait du nom d'une entreprise, il n'a pu être utilisé qu'au moment où ce terme est tombé dans le domaine public) :
* « Computer Science », le plus utilisé, qui revendique le terme de science et qui insiste sur son objet qui devrait être, si on prend le terme au pied de la lettre, la machine, et
* « Data processing », ou science du traitement des données, c'est-à-dire science des traitements de l'information.
Knuth, dans sa recherche d'un nom pour l'informatique, critique l'accent mis sur l'information, dans le terme français. « Computer science is known as "informatics" in French, German, and several other languages, but American researchers have been reluctant to embrace that term because it seems to place undue emphasis on the stuff that computers manipulate rather than on the processes of manipulation themselves ». Une troisième traduction en anglais est très utilisée depuis les années 2000 : « information technology ». L'acronyme « IT » est même très répandu en dehors de la sphère informatique.

### Machines

Le terme anglais « computer science » place la machine au centre de l'informatique, comme objet principal d'étude de cette jeune science. Ce choix soulève de nombreuses critiques :
* c'est une place trop importante pour certains, comme Edsger Dijkstra : « Computer science is no more about computers than astronomy is about telescopes » ;
* c'est une source de dévalorisation, pour d'autres car cela tend à réduire l'informatique à une technologie.
Pourtant, l'informatique n'a commencé vraiment qu'avec l'avènement des premières machines, et son essor a suivi l'essor des machines. Oublier la machine semble donc une grave erreur pour comprendre l'épistémologie de l'informatique.
L'une des raisons de l'importance de la machine en informatique vient, pour certains, de ce que sans machine, l'informatique reste une science formelle et qu'en conséquence, un science que l'on pourrait ranger comme l'une des disciplines des mathématiques. Avec l'arrivée de la machine, c'est l'introduction, l'irruption, du réel dans une science formelle que l'on observe, et la confrontation formel/réel. C'est la confrontation entre l'informatique théorique et la réalisation pratique, une dualité qui rappelle celle entre algorithme et programmation, entre machine de Turing et architecture de von Neumann, entre complexité théorique et benchmarking, ...
Sur le terme machine, d'autres préfèrent le terme ordinateur, mais si l'un semble trop large, l'autre est peut-être trop étroit.
Si la référence à la machine n'est pas constante en informatique, il y a une préoccupation implicite omniprésente vis-à-vis de la relation au réel que l'existence de la machine impose. Pour exemple, l'algorithmique se fixe souvent comme limite des algorithmes de complexité linéaire, ou quadratique, c'est-à-dire ce qu'il est raisonnable d'exécuter sur une machine. Au delà, en restant polynomial, les algorithmes sont réputés coûteux, et des algorithmes approchés peuvent être recherchés. Au delà encore, pour ce qui concerne des complexités exponentielles, la classe de problème est nommée par un euphémisme « dur », ce qui signifie irréaliste ; ou les problèmes sont réputés insolubles, avec comme implicite « avec les machines actuelles et un temps de calcul raisonnable ».

## Moyens de l'informatique

Par certains côtés, comme science formelle, l'informatique avance par pures constructions intellectuelles cherchant la cohérence, l'efficacité, l'élégance de ses productions$^,$.
L'existence des machines, introduit, par confrontation avec le réel, deux aiguillons favorisant le développement de l'informatique :
* l'un des grands moteurs de l'informatique, c'est la course à l'efficacité, il faut toujours essayer d'aller plus vite, moins coûteux, ... ce qui ouvre de nouveaux horizons. C'est une course en avant, portée également par les conséquences de la loi de Moore (doublement des capacités des machines tous les 18 mois), qui élargit continuellement les domaines d'application de l'informatique ;
* l'autre moteur de l'informatique, c'est de chercher à faire au moins aussi bien que l'intelligence humaine. C'est l'intelligence artificielle, ou certaines de ces productions. Cela part du principe, ou de l'hypothèse, que ce que l'expert sait faire « à la main », l'informaticien peut l'automatiser avec l'aide éventuelle de l'expert pour expliciter l'algorithme implicite ou inconscient employé par l'expert.
Les avancées technologiques hors de l'informatique, en électronique, par exemple pour les aspects pratiques, en mathématiques, par exemple pour les aspects formels, mais aussi parfois en mécanique quantique ou en biologie cellulaire, sont aussi souvent à l'origine de progrès en informatique. Le double aspect, science/technologie de l'informatique, lui permet de progresser sur les deux plans. L'informatique étant par ailleurs très liée aux sciences et technologies de son siècle dans les deux sens, comme utilisatrice des résultats de ces autres sciences et technologie mais aussi comme étant fournisseur de moyens d'obtenir de nouveaux résultats dans ces autres disciplines, des progrès lui aussi demandé par les autres sciences et technologies (ainsi la cryptographie et la pré-informatique ont progressé ensemble pendant les années de la seconde guerre mondiale avec la machine Enigma et le calculateur Colossus). L'informatique est investie par les autres sciences et technologie, c'est un lieu commun, l'informatique est partout, elle bénéficie des avancées des autres et fait bénéficier les autres de ses propres avancées.

## Méthodes de validation de l'informatique

Les méthodes de validation de l'informatique sont de deux ordres :
* les validations formelles : comme les sciences formelles, certains résultats sont prouvés formellement et validés par la lecture attentive de ces preuves par la communauté scientifique pour les approuver, les amender ou les rejeter ;
* les validations pratiques : plusieurs niveaux de validations pratiques sont possibles en informatiques :
** les preuves de concept (simple réalisation effective),
** les benchmarks (tests sur des jeux d'essai spécifiques),
** les validations par les usagers (comprenant des preuves de montée en charge, des questions d'adoption par le public, des analyses d'usage).
Il semble qu'il y ait un avis assez général parmi les informaticiens pour dire qu'un résultat n'est pas encore tout à fait validé tant qu'il n'y a pas eu de validation pratique. Une grande confiance est placée dans la confrontation au réel.

## Résultats de l'informatique

L'informatique donne des résultats pour chacun de ses objets :
* sur les algorithmes :
** une foule d'algorithmes et de concepts (structures de données, structures de contrôle, ...) pour résoudre de nombreux problèmes,
** plusieurs notions de complexité algorithmique pour comparer les algorithmes entre eux,
** des classes d'algorithmes (selon leur complexité),
** des résultats même sur les limites de l'algorithmique, sur la calculabilité de certains problèmes ;
* sur les machines :
** des machines effectives, dont la puissance suit une loi (la loi de Moore, exponentielle), cas unique dans l'histoire de l'humanité,
** des modèles de machines (Turing vs Von Neumann),
** une théorie des machines et paradigmes de programmation énonçant l'existence d'une classe quasi unique de machines et paradigmes de programmation : la thèse de Church (au moins jusqu'à l'informatique quantique) ;
* sur l'information :
** des méthodes de codage de l'information, des formalismes (théorie des langages formels).

## Références et notes

* 1 2 Léna Soler, Introduction à l’épistémologie, Paris, Ellipses, coll. « Philo », 2000, 335 p. (ISBN 978-2-7298-4260-4) (introduction).
* ↑ Qu'est-ce que l'informatique ?, Franck Varenne, Paris, Vrin, 2009.
* ↑ Pourquoi et comment le monde devient numérique, Gérard Berry, Leçon inaugurale au Collège de France de la chaire d'innovation technologique, 2007.
* ↑ Informatique et épistémologie, Séminaire de G Dowek, Janv 2010.
* ↑ Selected Papers on Computer Science (page 88), Donald E. Knuth, CSLI, 1996.
* ↑ The general ans logical theory of automata, J. von Neumann, 1948.
* ↑ L'informatique en France, l'émergence d'une science, P.-E. Mounier Kuhn, PUPS, 2010.
* ↑ Selected Papers on Computer Science, p. 3, Donald E. Knuth, CSLI, 1996.
* ↑ Ces préjugés qui nous encombrent, Gilles Dowek, Le pommier, 2009.
* ↑ Les origines françaises de la philosophie des sciences, Anastasios Brenner, PUF, 2003.
* ↑ Une histoire de l'industrie du logiciel, Martin Campbell-Kelly, Vuibert informatique, 2003.
* ↑ Histoire des codes secrets, Lattès, 2003, Simon Singh.