Informatique et langage informatique
Beaucoup pense que l'informatique a pour sujet l'ordinateur ou encore que c'est une science. Au contraire, l'informatique se comprend plutôt comme une révolution du mode de pensée hérité de la tradition mathématique ainsi que de son expression. La raison de cette confusion est plus ou moins la même que celle pour laquelle les égyptiens pensaient que la géométrie avait pour sujet les instruments de mesure (d'ailleurs éthymologiquement, géométrie vient du préfixe grec géo - la terre - et du mot metrein - mesure - soit la mesure de la terre) : quand une discipline ne fait que commencer, il est facile d'en confondre son essence avec les outils qu'elle utilise. On en vient naturellement à se demander ce qu'est alors l'essence de l'informatique ? Pour répondre à cette question il nous faut d'abord faire un détour par la typologie des connaissances.
Typologie des connaissances
C'est pour la première fois en 1975 que, la distinction formelle entre connaissance déclarative et connaissance procédurale dans le domaine informatique est abordée par Terry Winograd, dans un article intitulé Frame representations and the declarative/procedural controversy. À cette époque, deux clans d'informaticiens s'opposenr sur le meilleur moyen de coder des connaissances. Cette distinction est celle entre savoir (connaissance déclarative) et savoir-faire (connaissance procédurale). Elle repose sur le clivage entre connaissance et action.
Par exemple la proposition « $\sqrt{x}$ est la valeur telle que $y^{2} = x$ » est une connaissance déclarative relative à la notion de racine carrée (c'est ce type de connaissance qu'utilisent les mathémtiques). À l'inverse, la méthode de Héron d'Alexandrie d'extraction de racine carrée est une connaissance procédurale également relative à la notion de racine carrée. On remarquera qu'en informatique la distinction entre ces deux types de connaissance porte simplement sur leur représentation. On ne prétend pas qu'il existe des connaissances, en elles-mêmes, déclaratives ou procédurales.
De la connaissance procédurale à l'informatique
La connaissance procédurale nous donne une méthode pour faire quelque chose, elle nous donne un processus. En informatique, il faut considérer le processus comme un esprit magique qui vit au sein d'un ordinateur et qui y fait des choses. Ce processus est dirigé par un ensemble de règles appelé procédure. Les procédures sont les sorts qui contrôlent les esprits magiques que sont les processus. Ainsi, l'informatique fournit un cadre, distinct de celui des mathématiques qui l'ont précédé, pour répondre à la question : « comment faire ? ». C'est donc l'étude des processus ainsi que leur description qui vont être au coeur du travail de l'informaticien.
Informatique et langage de programmation
Très vite, de nouveaux modes d'expression sont apparus pour décrire les processus. Parmi eux, on trouve Scheme. C'est un langage de programmation pour écrire des procédures qui vont contrôler des processus. Scheme va permettre de coder des programmes informatiques exécutable sur un ordinateur. Il est très facile d'apprendre les règles de Scheme mais les implications découlant de ces règles sont bien plus compliqués tout comme la manière dont les exploiter pour être un maître de la programmation.
Informatique et complexité
Comme on l'a vu, l'informatique a pour sujet de formaliser la connaissance impérative. Mais le vrai problème survient quand on cherche à construire des systèmes de grande taille, des programmes ayant des millions de lignes de code, si long que personne ne peut les appréhender en entier. Il existe des techniques pour contrôler la complexité de ces systèmes. Et dans un certain sens, c'est là qu'est le véritable sujet de l'informatique. En informatique (contrairement à des systèmes physiques), on travaille avec des composants idéaux: il n'y a pas tant de différence entre ce qui peut être construit et ce qui peut être imaginé car les parties sont des entités abstraites que l'on connaît aussi précisément qu'on le souhaite. Les contraintes dans la réalisation de grands systèmes logiciels sont les limites de notre esprit, on ignore totalement les contraintes de notre réalité physique.
Aller plus loin
Vous savez maintenant ce qu'est une forme en Scheme et vous êtes capables d'écrire les vôtres. Continuez à explorer les possibilités que vous offre Scheme en consultant les liens suivants :