Je travaille sur deux livres actuellement, il ne s'agit pas de ceux que j'écris (ma traduction, et mon Grand Projet), mais de deux livres d'histoire de la finance que j'ai achetés récemment : Ce sont deux livres qui traitent de l'histoire de la finance, soit sous l'angle d'une impressionnante somme chronologique, analysée et commentée avec intelligence, depuis l'antiquité jusqu'à nos jours (Belze et Spieser), soit en prenant l'exemple d'un manuel de mathématiques (mais aussi de commerce) du XIIIème siècle sans aucune équation (la traduction du manuel de Fibonacci). Je me régale, car cela comble mon inculture encyclopédique. Je découvre quantité de choses, aussi je partage mon étonnement.

La découverte du jour porte plutôt sur le Fibonacci (je me réserve, pour la suite, de parler du Code d'Hammourabi dans le Belze-Spieser), précisément sur l'avènement des "chiffres arabes" en Europe. C'est Fibonacci qui a tout fait en 1202, si, si. Ces chiffres étaient anciens, puisque en fin de mon billet, je citais Brahmagupta au VIème siècle après JC. Fibonacci n'a donc pas inventé ces chiffres, mais il en a popularisé l'usage avec un manuel qui m'a l'air extrêmement clair et pédagogique.

Empruntons la De Lorean de Marty McFly et opérons un Retour vers le Futur.
Nous sommes au XIIIème siècle, et depuis la Rome antique, on compte en chiffres romains. Ce n'est pas le nirvana, pour deux raisons détaillées ci-dessous :
  • C'est super fastidieux à écrire. Même s'il y a un ordre logique (les chiffres des centaines arrivent avant les chiffres des dizaines, eux-mêmes passant devant les chiffres des unités), il faut avoir une plume bien taillée pour écrire huit cent quatre-vingt sept : en chiffres romains, cela nécessite DCCCLXXXVII = 11 caractères. Vous me direz, en lettres, cela nécessitait 27 signes (espaces et tiret inclus). En chiffres arabes, 3 caractères : 887. Je ne vais pas en dériver une loi absolue, mais pour chaque chiffre arabe (unités, dizaines, centaines, milliers, etc.) il faut en moyenne 2 à 3 chiffres romains. 4212 nécessite MMMMCCXII = 9 caractères. Que dire de 763 987 238...
  • Ces chiffres arabes ont permis de gagner du temps, car auparavant, il y avait deux mondes distincts : celui de l'écriture des nombres (en chiffres romains) et celui des calculs (réalisés avec un boulier). Pour faire XIX plus XLIII, il fallait "introduire" ces valeurs dans un boulier, calculer la somme, puis la retranscrire en chiffres romains (soit LXII). Fibonacci arrive, et hop, ce qu'il a appris des Arabes (qui l'ont eux-mêmes appris des Indiens), ce n'est pas seulement un système de codage plus efficace : cela vient aussi avec une boite à outils d'algorithmes, c'est-à-dire de manipulations de ces chiffres pour réaliser toutes sortes d'opérations. Exit le boulier : le chiffre est devenu matière malléable, sur laquelle on peut directement travailler. On pose une addition, on retient 2, qu'on rajoute aux dizaines, ou on calcule le reste d'une division sur un coin de table : chapeau, Fibo !
Je cherche une analogie en informatique, et la trouve approximativement: aux beaux temps de l'Intelligence artificielle et des systèmes experts (toute ma jeunesse), on opposait l'informatique procédurale (un programme est constitué d'une part d'un listing d'instructions, figées dans la pierre, qui sont censées réaliser des opérations, et d'autre part, de variables mouvantes, qui prennent différentes valeurs, dynamiquement) et les langages d'intelligence artificielle où il n'y avait plus, ni linéarité de l'algorithme (Exit le if... then... else...), ni variables en tant que telles: tout le programme devenait variable...

Je sens que vous ne suivez déjà plus, je vous parlerai donc une autre fois du Zéphir, cette absence qui a une valeur.