Vue lecture

La convention du mètre et l’ODF 150 et 20 ans d’ouverture

La convention du mètre fête ses cent cinquante ans cette année tandis que le format bureautique OpenDocument Format (ODF) a soufflé vingt bougies. Ça vaut bien une dépêche sans doute ce qui nous permettra de dresser un historique de ces deux types de normes et, peut-être, de mieux mettre en lumière la nécessité des formats ouverts pour les personnes pour qui la notion n’est soit pas facile à expliquer, soit pas familière. Quel rapport entre les deux ? Le système métrique, dont l’histoire est passionnante, est, à ma connaissance, le tout premier standard ouvert. Quant à l’ODF, c’est l’un des premiers, si ce n’est le tout premier, standard bureautique ouvert.

Dessin. En haut un double décimètre, au milieu les chiffres 1795, 1875, 2025, 230, 150 et 20 entourant un gâteau avec une bougie. En bas les icônes des formats Open Document File : ODB, ODF, ODP, ODS et  ODT

Qu’écouter en lisant cette dépêche ? L’Enfant les sortilèges (1925) tout particulièrement pour la leçon d’arithmétique, musique de Maurice Ravel, texte de Colette dont l’œuvre vient d’entrer dans le domaine public.

Sommaire

Préambule

En 2018, lors des dernières rencontres mondiales du Logiciel Libre (RMLL) à Strasbourg, j’avais fait une conférence dont le sujet était Formats ouverts et métrologie, dont on peut télécharger le livret explicatif. C’est par cette approche que, personnellement, j’ai vraiment pleinement compris ce qu’était un format ouvert et, surtout son importance et, accessoirement que j’ai réalisé à quel point le système métrique était une avancée formidable. Mêler le matériel (système métrique) au logiciel (format ODF) peut être une façon pour certaines personnes de mieux comprendre des notions très abstraites.

L’aventure du système métrique

Une grande diversité des mesures et une préoccupation ancienne

Avant le système métrique, la question des poids et mesures dans le royaume de France a été un sujet crucial qui a fait l’objet de plusieurs tentatives d’uniformisation. Les poids et mesures variaient d’un endroit à l’autre avec, souvent, les mêmes noms, facilitant ainsi les confusions et les escroqueries. Après une difficile uniformisation de la monnaie, le pouvoir monarchique va s’attaquer à l’uniformisation des poids et mesures. Plusieurs tentatives auront eu lieu, sous Philippe Le Bel (1285-1314), Philippe V Le Long (vers 1293-1322), Louis XI (1423-1483), François 1ᵉʳ (1494-1547) et Henri II (1519-1547) sans succès. En 1321, Philippe V indique, dans le deuxième article d’une ordonnance royale :

en notre dit Royaume où il y a diverses mesures et divers poids en déception et lézion de plusieurs, fussent faites de nouvel en un seul poids et une seule mesure convenable desquelles le peuple usât dorénavant. (Métrologie ou Traité des mesures, poids et monnoies des anciens peuples & des modernes).

Philippe V meurt peu de temps après, cette politique ambitieuse ne se réalisera pas complètement et la multitude de systèmes de poids et mesures continuera à faire la prospérité des seigneurs et des villes. Cette diversité posait également la question de la fiabilité des étalons des poids et mesures, pas toujours fabriqués dans des matériaux fiables, et dont l’emplacement n’était pas toujours connu quand ils n’étaient pas perdus. C’était, de fait, un obstacle à la circulation des marchandises. D’ailleurs, quand, en 1789, Louis XVI convoque les États généraux, l’uniformisation des systèmes de mesure sera une revendication que l’on retrouvera dans de nombreux cahiers de doléances.

La question va se poser avec encore plus d’acuité au fur et à mesure que la science s’appuie de plus en plus sur la métrologie. Il fallait aux scientifiques un système de mesures fiable, documenté et reproduisible. Les questions qui vont se poser concernent aussi bien sur quelles bases établir ces mesures que du choix et de la forme des matériaux pour la fabrication des étalons de mesure et en quelle base calculer. À la veille de la Révolution française, les scientifiques sont prêts pour ce qui sera aussi une révolution mais d’un autre genre.

Tableau de comparaison des mesures anciennes
Extrait du tableau de correspondance des mesures du « Mémoire sur la nécessité et les moyens de rendre uniformes les mesures d’étendue et de pesanteur » de Claude-Antoine Prieur. On voit bien la complexité d’un système que le « pied de Roi » avait essayé de simplifier. Il y avait une aune pour les soieries, une pour les lainages et une pour les toiles qui valaient respectivement : 527,5/144, 526,5/144 et 524/144 de pied de Roi. Les mesures nationales sont celles qui seront proposées comme nouvelles mesures avec des noms essayant de ne pas trop s’éloigner des anciennes : le millaire pour remplacer la lieue de Paris, la perche, l’aune, le pied, le pouce et la ligne étant gardés.

La mise en place du système décimal et du système métrique

Le travail législatif commence en 1790. Le député de la Côte d’or, Claude-Antoine Prieur rédige un Mémoire sur la nécessité et les moyens de rendre uniformes les mesures d’étendue et de pesanteur, De les établir sur des bases fixes et invariables ; D’en régler tous les multiples et les subdivisions suivant l’ordre décuple ; D’approprier enfin à ce nouvel ordre le cours des petites monnoies qui sera présenté à l’Assemblée nationale. L’objet du mémoire est de répondre à la question « sur quels principes cette mesure doit être établie. » (Introduction du Mémoire). Talleyrand, évêque d’Autun, propose d’écrire au Parlement anglais qui, de son côté, discutait de ce sujet pour les mêmes raisons : la diversité des mesures et son aspect dommageable. Talleyrand suggérait que la France et l’Angleterre travaillent ensemble sur le projet. La lettre reçut un accueil favorable. L’Assemblée fera donc un décret demandant au roi notamment de :

  • faire déterminer la longueur du pendule à seconde qui devait servir de base,
  • demander aux communes et départements « au Secrétariat de l’Académie des Sciences un modèle parfaitement exact des différents poids et des mesures élémentaires qui y sont en usage » 
  • charger l’Académie des sciences de comparer les anciens poids et mesures aux nouveaux et d’envoyer aux municipalités ensuite « des livres usuels et élémentaires où seront indiquées avec clarté toutes ces proportions »,
  • et surtout, que les anciennes mesures soient abolies dans les six mois après la réception des nouvelles et remplacées par celles-ci.

Portraits
Portraits de Lagrange, Laplace, Monge et Condorcet, les deux premiers sont tirés de l’ouvrage : Le Système métrique décimal.

En 1791 une commission composée de la fine fleur des savants de l’époque, Jean-Charles de Borda (mathématicien et physicien), Joseph-Louis Lagrange (mathématicien et astronome), Pierre-Simon Laplace (mathématicien et astronome), Gaspard Monge (mathématicien) et Nicolas de Condorcet (mathématicien et philosophe), dépose un rapport sur le choix d’une unité de mesures. Il fallait qu’elle soit nouvelle et prise dans la nature. Trois choix sont proposés :

  • La longueur du pendule à secondes ;
  • Un quart de cercle de l’équateur terrestre ;
  • Un quart du méridien, entre le pôle et l’équateur.

La première a deux inconvénients : elle est liée à l’unité tout à fait arbitraire qu’est la seconde de temps ; et elle fait intervenir le temps et l’intensité de la pesanteur, considérations bien étrangères à l’unité de longueur.

Le quart de l’équateur est repoussé aussi, car la régularité de ce cercle n’est pas plus assurée que celle des méridiens, et les régions équatoriales sont d’un accès difficile. On adopte donc le quart du méridien, dont la dix-millionième partie sera l’unité usuelle ; mais comme sa mesure entière n’est pas possible, on convient de se borner à un arc de grandeur suffisante dont les extrémités tombent l’une au nord l’autre au sud du parallèle 45°. La partie du méridien de Dunkerque à Barcelone est adoptée ; elle suit la méridienne de Paris déjà mesurée, ce qui donnera des vérifications précieuses. (Le Système métrique décimal. Sa création en France. Son évolution. Ses progrès).

La commission est reçue le 19 juin 1791 par un Louis XVI qui s’enfuira le lendemain et sera arrêté le 21 juin 1791 à Varennes, ouvrant ainsi la page de l’Histoire de France la plus complexe sur le plan politique.

Le 1er août 1793, première loi. Son article premier indique que :

Le nouveau système des poids et mesures, fondé sur la mesure du méridien de la Terre et la division décimale, servira uniformément dans toute la République.

Il prévoit un temps d’adaptation d’une année à l’issue de laquelle le nouveau système deviendra obligatoire et aussi (article 10 de la loi) que l’Académie des sciences fasse un livre

à l’usage de tous les citoyens, contenant des instructions simples sur la manière de se servir des nouveaux poids et mesures, et sur la pratique des opérations arithmétiques relatives à la division décimale.

Le système décimal donnera d’ailleurs à plusieurs publications d’origines diverses. Par exemple, en 1799, Le Système métrique et ses rapports de Jacques Schwab, habitant de Nancy. Il y propose des méthodes de calcul « faciles » à exécuter :

J’ai, pour cela, tâché de ramener chaque rapport à une suite de fractions simples, qui répondent à 5 ou 6 chiffres de ce rapport, lesquels, si on les avait employés, auraient trop embarrassé le calcul par la multiplicité des chiffres ; d’ailleurs ces rapports ne se retiennent pas aussi volontiers dans la mémoire qu’une suite de fractions ; telles que ⅓, ½ pour 100, 3 par mille, etc. Ainsi, pour convertir des aunes en mètres, au lieu de multiplier par 1,188446, j’ajoute d’abord le 10^e ; sur ce premier résultat je prends 8 pour 100, sur ce second, ½ pour 100, et enfin le 80^e de ce dernier.

Si les poids et mesures vont rester, dans la première partie de l’histoire du système métrique, basées sur le méridien terrestre. Il n’en va pas de même pour la température. En effet :

la Commission « avait choisi la chaleur moyenne de la Terre, celle des caves de l’Observatoire, c’est-à-dire douze degrés et demi du thermomètre divisé en cent degrés »… (Le Système métrique décimal.).

Quand le rapport Prieur préconisait qu’elle soit (j’ai gardé la graphie de l’auteur) :

fixée, par exemple à dix dégrés du thermomètre à mercure, gradué à zéro pour la glace fondante, et à 80 dégrés pour l’eau distillée bouillante sous une pression constante de l’atmosphère, pression elle-même évaluée par la hauteur d’une colonne de mercure exprimée en fractions de la longueur du pendule.

Dans la tourmente de la Révolution, les travaux de calcul du méridien seront interrompus ainsi que celui de l’établissement du système métrique. Il faut attendre le 7 avril 1795 (18 germinal an III) pour qu’une nouvelle loi sorte. L’article 1 proroge la loi de 1793 et suggère que les citoyens donnent « une preuve de leur attachement à l’unité et à l’indivisibilité de la République en se servant dès à présent des nouvelles mesures dans leurs calculs et transactions commerciales. » Son article 2, précise qu’il « n’y aura qu’un seul étalon des poids et mesures pour toute la République : ce sera une règle de platine sur laquelle sera tracé le mètre qui a été adopté pour l’unité fondamentale de tout le système des mesures. »

Mais ce sont surtout ses articles 5, 6 et 7 qui sont vraiment intéressants. L’article 5 indique la nouvelle nomenclature et ses spécifications :

Art. 5. —- Les nouvelles mesures seront distinguées dorénavant par le surnom de républicaines ; leur nomenclature est définitivement adoptée comme il suit :

On appellera :
Mètre, la mesure de longueur égale à la dix-millionième partie de l’arc du méridien terrestre compris entre le pôle boréal et l’équateur.
Are, la mesure de superficie, pour les terrains, égale à un carré de 10 m de côté.
Stère, la mesure destinée particulièrement aux bois de chauffage, et qui sera égale au mètre cube.
Litre, la mesure de capacité, tant pour les liquides que pour les matières sèches, dont la contenance sera celle du cube de la dixième partie du mètre.
Gramme, le poids absolu d’un volume d’eau pure égal au cube de la centième partie du mètre, et à la température de la glace fondante. Enfin, l’unité de monnaies prendra le nom de franc, pour remplacer celui de livre usité jusqu’aujourd’hui.

L’article 6, quant à lui, précise les noms des subdivisions. On notera que « kilomètre » l’a emporté sur « myriamètre » dans la nomenclature actuelle.

Art. 6. – La dixième partie du mètre se nommera décimètre et sa centième partie centimètre.
On appellera décamètre une mesure égale à dix mètres : ce qui fournit une mesure très commode pour l’arpentage.
Hectomètre signifiera la longueur de cent mètres.
Enfin, kilomètre et myriamètre seront des longueurs de mille et dix mille mètres, et désigneront principalement les mesures itinéraires.

L’article 7 précise aussi que : « Art. 7. – Les dénominations des mesures des autres genres seront déterminées d’après les mêmes principes que celles de l’article précédent. » Avec une exception pour les francs où l’on utilisera « décime » (tombé en désuétude depuis) et « centime ».

Les travaux de calcul de la méridienne vont pouvoir reprendre, non sans quelques difficultés : Delambre qui avait négligé de payer le nécessaire passeport pour se déplacer dans cette France où on ne voyageait pas sans le précieux document sera arrêté puis relâché et jugera, mais un peu tard, qu’on ne l’y reprendrait plus. Les équipes de calcul du méridien, d’une manière générale, ne seront pas toujours bien accueillies. Méchain, qui avait préféré rester de l’autre côté des Pyrénées pendant la Terreur ne voudra pas rejoindre Paris malgré les suppliques de son épouse.

Le lancement du système métrique

L’ambition à l’origine du système métrique ayant été aussi qu’il soit universellement utilisé, et pas seulement en France, Talleyrand, alors Ministre des Affaires étrangères, avait aussi écrit à d’autres pays et obtenu des réponses favorables du Danemark, de l’Espagne et de la Sardaigne, ainsi que des Républiques batave, cisalpine, helvétique, ligurienne, romaine et toscane. Chacun envoyant des délégués à Paris pour les travaux.

Le nouveau système sera-t-il accueilli avec joie et utilisé aussitôt ?

Non, bien sûr que non. Sans parler des revenus que les anciennes mesures accordaient aux collectivités, la nouvelle nomenclature changeait les vieilles habitudes, les nouveaux noms ne sont pas dans la langue française (effectivement ils ont des racines grecques, comme nombre de mots de ladite langue) et ils étaient trouvés trop longs par les détracteurs du nouveau système. Ça rappelle les « guerres du nénufar » quand, en France, on s’emportait sur la réforme de l’orthographe de 1990. Toujours est-il, qu’un décret paraîtra le 12 février 1812 qui précise dans son article 3 que les instruments de mesure « porteront, sur leurs diverses faces, la comparaison des divisions et des dénominations établies par les lois, avec celles anciennement en usage. ». Ce qui n’est pas forcément le meilleur moyen de faire adopter pleinement le nouveau système. C’est un peu comme pour l’adoption de Linux, tant qu’on a un double démarrage, on aura tendance souvent à ne rester que sur Windows même en l’absence de logiciels spécifiques à ce système d’exploitation et qui n’existerait pas sous Linux. D’ailleurs, aussi bien au Canada, qu’en Australie ou au Royaume-Uni, le mélange des genres entre les deux systèmes continue à exister… avec des mesures impériales qui ne sont pas forcément toutes identiques.

Néanmoins, si le décret se donne dix années d’expérimentation du système métrique (article 4), il précise bien (article 5) que « le système légal continuera à être seul enseigné dans toutes les écoles, y compris les écoles primaires, et à être seul employé dans toutes les administrations publiques, comme aussi dans les marchés, halles, et dans toutes les transactions, commerciales et autres, entre nos sujets. » L’arrêté qui en fixait l’exécution permettait, dans le domaine commercial, d’utiliser les toises, pieds, pouces et lignes qui étaient fixés par rapport au mètre : 1/3 de mètre pour la toise, 1/36 pour le pouce et 1/1296 mètres pour la ligne. Sans doute dans un esprit de simplification.

Le système métrique était bien prêt pour être utilisé par la population, ladite population par contre… on ne lui facilitait pas tant que ça le changement de système. Au bout de quelques années, on finira par se retrouver dans une situation où les jeunes ne connaissaient que le système métrique, où l’administration n’utilisait que celui-là et où on continuait à utiliser les anciennes mesures dans le commerce de détail. Finalement c’est la loi du 4 juillet 1837 qui va définitivement imposer en France le système métrique, avec, toutefois, une tolérance jusqu’au 1er janvier 1840 pour que les commerces de détail passent sans difficulté de Python 2 à Python 3, pardon, du vieux système de mesure au nouveau.

Van Swinden
Jean Henri van Swinden (1746-1823), gravure tirée du Système métrique décimal.

Le système métrique est enfin et définitivement adopté en France. Il l’avait déjà été en Suisse, (1801). En Hollande, une première proposition de loi avait été déposée par le physicien hollandais Van Swinden en 1802, l’Espagne se préparait activement à diffuser largement le nouveau système de mesure en 1807.

Après cette difficile naissance, le système métrique entamera son essor à partir des années 1850 et sera très largement adopté.

Courbe d’adoption du système métrique de 1790 à 1940
Courbe de progression de l’adoption du système métrique par nombre d’habitants. Le système métrique met environ 60 ans pour toucher 50 millions de personnes. Et le même nombre d’années à peu près pour en concerner 500 millions.

Et cela en dépit de quelques oppositions, ainsi le philosophe darwiniste anglais Herbert Spencer affirmait que :

 La survivance des plus aptes a toujours amené le triomphe des unités qui se divisent par 2 ou par 3 sur les divisions décimales. (rapporté dans Le Système métrique décimal.).

Tandis que le parlementaire américain Samuel Dale estimait que le système anglais (qui deviendra le système impérial) était plus naturel car basé sur les dimensions du corps humain. Celui d’un corps humain en tout cas.

Le Bureau International des Poids et Mesures (BIPM) et l’évolution du système métrique

Un système de mesure n’est pas quelque chose qu’on conçoit, décide et fabrique une bonne fois pour toutes. Tout du moins, ce n’est pas le cas du système métrique tel qu’il vient d’être mis en place. Il faut s’assurer que les étalons de mesure soient toujours corrects, ce qui n’a pas été le cas d’ailleurs du mètre étalon, les distribuer, les contrôler mais aussi, le faire adopter le plus universellement possible pour les échanges commerciaux comme pour les recherches scientifiques. Il faut aussi que les bases du système puissent évoluer tout en restant cohérentes de façon à suivre les évolutions scientifiques.

Un organisme de gestion du système de mesures international s’impose donc.

La création du BIPM en 1875

En 1875, le gouvernement français organise la Conférence diplomatique du mètre, vingt pays y participeront, essentiellement européens et américains : Allemagne, Argentine, Autriche-Hongrie, Belgique, Brésil, Danemark, Espagne, États-Unis, France, Grande-Bretagne, Grèce, Italie, Pays-bas, Pérou, Portugal, Russie, Suède et Norvège, Suisse, Turquie, Venezuela pour travailler sur le futur du système. Cela donnera le Bureau International des Poids et mesures créé par la Convention du Mètre en 1875. Il est internationalement reconnu comme l’organisme chargé de gérer le système métrique qui deviendra le Système International (SI) en 1960.

Le budget, prévu dans la Convention du mètre issue de cette conférence de 1875 était de 75 000 F, qui pouvait aller jusqu’à 100 000 F maximum si nécessaire. Il comprenait les rétributions annuelles du directeur (15 000 F) et de ses deux adjoints (6 000 F chacun), celle de quatre aides à 3 000 F, d’un mécanicien-concierge à 3 000 F et de deux garçons de bureau pour 1 500 F chacun. À cela s’ajoutait un budget global de 24 000 F pour les savants et artistes1 amenés à intervenir à la demande du BIPM, l’entretien et la maintenance des locaux ainsi que les frais de fonctionnement. Enfin le secrétaire du Comité international des Poids et Mesures se voyait bénéficier d’une indemnité de 6 000 F pour son travail. Le budget sera moins détaillé par la suite. Pour 2025, il est fixé à 13 358 636 euros par la 27e réunion de la Conférence générale des poids et mesures, CGPM.

Si on veut avoir une idée de ce que représentent ces montants, par exemple et à titre indicatif : le salaire brut annuel des employés de bureau est, en moyenne, d’environ 23 692 € pour les hommes avec un écart de moins 10 % pour les femmes (source). Quant à la direction du BIPM, le salaire proposé dans cette offre de recrutement de 2024 commençait à partir de 155 000 euros bruts annuels.

Et, pour donner un ordre de grandeur du coût de la vie, le kilo de pain, élément principal de l’alimentation à l’époque, coûtait de 76 à 38 centimes (source). Aujourd’hui, un pain de 500 g coûte en moyenne 1,80 €, ce qui porte le kilogramme à 3,60 € (source). En un jour de travail, un garçon de bureau pour s’offrir quelque chose comme sept kilos de pain contre 14 pour un employé de bureau contemporain. Les limites de l’exercice est, dans les deux cas, que les charges récurrentes sont différentes.

Le gouvernement français offre le lieu : ce sera le pavillon de Breteuil dans le parc de Saint-Cloud et qui a un statut d’enclave internationale. Un observatoire sera construit aussi sur les lieux pour les mesures et tout le travail de recherche. Et c’est toujours le siège et le lieu de travail du BIPM.

Le pavillon de Breteuil
Côté ouest du Pavillon de Breteuil et de l’observatoire, vers 1930.

Des missions et des travaux qui dépassent le cadre des prototypes

Lors des discussions, la question s’était posée de créer une institution pérenne ou de ne la faire que le temps de mettre au point et fabriquer les prototypes. L’option d’un organisme pérenne a prévalu, permettant au BIPM de continuer le travail sur les mesures et le travail de recherche.

Les travaux vont donc porter dans un premier temps sur l’élaboration des étalons et des prototypes. Opérations qui vont nécessiter des prises de décision : quels matériaux adopter notamment et des analyses. Pour cela, le BIPM va se doter d’un laboratoire et d’outils qui vont lui permettre de vérifier la fiabilité des étalons dans le temps et de les conserver. Ce seront par exemple dans les années 1920-1930 des machines comme ce comparateur à dilatation.

Comparateur à dilation
Cette machine avec un système de commande électrique date de 1926. Elle pouvait mesurer des longueurs jusqu’à 1,25 mètres.

Les étalons seront conservés de façon à limiter les risques d'altérations.
Cloche à étalons
À droite un poids étalon conservé sous une cloche de verre, à gauche une version dans un étui de voyage (le cylindre au milieu est le couvercle de l’étui).

Le BIPM aujourd’hui

Les missions du BIPM ont été étendues par rapport aux origines puisqu’il gère le Système international d’unités (SI), mais qu’il est aussi responsable du temps : l’UTC (pour Universel Temps Coordonné) ou temps universel coordonné, échelle de temps qui est devenu une norme internationale en 1963. En revanche, ne le maudissez pas pour les heures d’été et d’hiver, l’UTC ne s’en préoccupe pas et reste invariable toute l’année, a contrario du méridien de Greenwich. L’UTC base ses calculs sur la rotation terrestre et les horloges atomiques et non plus sur un méridien, même si l’heure zéro reste celle du méridien de Greenwich.

On se souvient que, depuis le début des travaux du système métrique, l’idée était d’impliquer les autres États afin d’internationaliser son usage, le BIPM travaille ainsi avec les laboratoires de métrologie des États membres de la convention internationale du système métrique. Lesquels États participent au financement du BIPM. Il y a actuellement 64 membres, des grands pays comme le Brésil, la Chine, les États-Unis ou l’Inde, mais aussi un tout petit pays comme le Monténégro. La répartition géographique des pays membres du BIPM, sans surprise, n’est pas « équilibrée » entre les continents.

Répartition des États membres du BIPM par continent
En Europe 37 pays membres sur les 54 États du continent, 15 sur 35 pour l’Asie, 10 sur 49 pour l’Amérique, 5 sur 50 pour l’Afrique et 2 sur 16 pour l’Océanie.

Son financement suit le modèle, avec quelques adaptations, de financement de l’ONU qui établit un barème des quotes-parts de chaque pays en fonction de divers critères incluant ses capacités de paiements. Le budget est décidé pour une période pluriannuelle et s’établit ainsi pour les années 2024 à 2027 (PDF) :

  • 2024 : 13 161 218 €
  • 2025 : 13 358 636 €
  • 2026 : 13 559 016 €
  • 2027 : 13 762 401 €

L’évolution du système international

Le système métrique de 1889 connaît plusieurs évolutions plus moins majeures.

En 1901, le kilogramme devient l’unité de masse, une unité qui peut être mesurée en apesanteur, par exemple avec un certain type de chaise. Le poids, quant à lui, désigne « une grandeur de la même nature qu’une force ; le poids d’un corps est le produit de la masse de ce corps par l’accélération de la pesanteur ». Le nombre adopté pour la valeur de l’accélération normale de la pesanteur étant de 980,665 cm/s².

En 1946, la CGPM ajoute avec l’ampère les unités électriques à la collection de celles que le SI gère. Il possède sept unités de base :

  • la seconde, s, unité de temps,
  • le mètre, m, unité de longueur,
  • le kilogramme, kg, unité de masse,
  • l’ampère, A, unité de courant électrique,
  • le kelvin, K, unité de température thermodynamique,
  • la mole, m, unité de quantité de matière,
  • le candela, cd, unité d’intensité lumineuse.

En 1960, intervient ce que l’on peut considérer comme la première grande évolution du système métrique qui va changer de nom par la même occasion et devenir « International ». Il bénéficiera d’autres évolutions, la dernière, la plus importante, en 2018. Ce qui change : les définitions des mesures qui, bien que restant proches du système métrique initial gagnent en précision. Le mètre conserve toujours la même longueur grosso modo, le double décimètre promotionnel hérité de votre arrière-grand-tante reste toujours valable si cela peut vous rassurer. C’est important surtout pour l’infiniment petit, ou l’infiniment grand.

De 1960 à 2018 :

  • la seconde est définie en 1960 comme « la fraction 1/31 556 925,9747 de l’année tropique pour 1900 janvier 0 à 12 heures de temps des éphémérides » pour, en 1967, devenir « la durée de 9 192 631 770 périodes de la radiation correspondant à la transition entre les deux niveaux hyperfins de l’état fondamental de l’atome de césium 133 »,
  • la longueur du mètre est égale à : « 1 650 763,73 longueurs d’onde dans le vide de la radiation correspondant à la transition entre les niveaux 2p_{10} et 5d_{5} de l’atome de krypton 86. », en 1987, le mètre deviendra « la longueur du trajet parcouru dans le vide par la lumière pendant une durée de 1/299 792 458 de seconde » 17e CGPM,
  • l’unité de température est le kelvin depuis 1967 et son symbole le K, ils « sont utilisés pour exprimer un intervalle de température » qui « peut aussi s‘exprimer en degrés Celsius »,
  • la mole s’ajoute au portefeuille des mesures de base du SI lors de la 14e CGPM en 1971, c’est la « quantité de matière d'un système contenant autant d'entités élémentaires qu'il y a d'atomes dans 0,012 kilogramme de carbone 12 ; son symbole est “mol” »,
  • le candela, mesure d’intensité lumineuse, est défini en 1967 comme l’intensité lumineuse, dans la direction perpendiculaire, d’une surface de 1/600 000 mètre carré d’un corps noir à la température de congélation du platine sous la pression de 101 325 newtons par mètre carré.  » définition qui sera abrogée par la suite.

Depuis le 29 mai 2019, date de son application, le SI se définit selon ces bases :

la fréquence de la transition hyperfine de l’état fondamental de l’atome de césium 133 non perturbé, ΔνCs, est égale à 9 192 631 770 Hz,

  • la vitesse de la lumière dans le vide, c, est égale à 299 792 458 m/s,
  • la constante de Planck, h, est égale à 6,626 070 15 × 10–34 J s,
  • la charge élémentaire, e, est égale à 1,602 176 634 × 10–19 C,
  • la constante de Boltzmann, k, est égale à 1,380 649 × 10–23 J/K,
  • la constante d’Avogadro, NA, est égale à 6,022 140 76 × 1023 mol–1,
  • l’efficacité lumineuse d’un rayonnement monochromatique de fréquence 540 × 10 12 Hz, Kcd, est égale à 683 lm/W.

Ces spécifications relèguent au musée les étalons matériels puisque le SI est basé sur les éléments immatériels que sont les constantes de la physique. Par contrecoup, si on a gagné en précision et, semble-t-il, en pérennité, on s’est bien éloigné des spécifications de 1791 qui ne requéraient, pour être comprises, pas de connaissances particulières ni même de dispositifs complexes pour l’établissement des mesures. Cela d’ailleurs été reproché à la parution de la nouvelle version du SI. On notera au passage l’importance de la seconde qui avait été écartée en 1791.

Le SI et les autres systèmes d’unités

À l’heure actuelle il n’existe que deux systèmes d’unités couramment employés : le SI presque partout dans le monde, notamment scientifique et le système impérial qui reste encore en vigueur aux USA, où le SI est reconnu officiellement et enseigné, au Liberia et au Myanmar qui reste le seul pays du monde à n’utiliser que le système impérial.

Le système impérial, qui date de 1824, se définit par rapport au SI depuis 1959. Ainsi un pied est subdivisé en douze pouces de 2,54 cm (ce qui fait un tout petit pouce) et mesure 30,48 cm, soit une pointure 48 environ, pas le pied de tout le monde. Et, naturellement, un alexandrin fait douze pieds2.

L’OpenDocument Format (ODF)

Le format ODF est une norme de fichiers bureautique qui doit sa naissance à des raisons similaires à celles qui ont abouti à la création du système métrique, à savoir une abondance de formats fermés qui rendait le processus d’archivage et de conservation des documents, au mieux, difficile.

Logo de l’ODF, un oiseau bleu, crédits Andy OpenClipart

Derrière l’ODF

Derrière l’ODF, le consortium OASIS (Organization for the Advancement of Structured Information Standards), à ne pas confondre par exemple avec le consortium OASIS, une autre organisation à but non-lucratif mais dans le domaine de la santé ou encore avec le groupe de rock Oasis.

Le consortium OASIS qui nous occupe est composé d’organismes très divers : des entreprises informatiques, des administrations publiques, des bibliothèques ou encore des organisations à but non-lucratif comme TheDocumentFoundation qui chapeaute le projet LibreOffice. Il a été créé en 1993 sous le nom de SGML dans le but de développer le langage de balisage du même nom. Le consortium changera de nom en 1998 en élargissant ses domaines d’action. OASIS a maintenu et maintient une collection assez impressionnante de projets dans des secteurs très variés (en), entre autres :

  • le modèle de documentation technique DocBook,
  • la norme de rédaction de documents structurés modulaires DITA,
  • le protocole d’échanges de données de service Web WS-Security.

Une brève histoire de l’ODF

En 2002 Sun Microsystems commence à travailler sur un format de fichiers bureautiques basé sur le XML pour sa suite bureautique OpenOffice. OASIS va reprendre le flambeau. La naissance, en 2002, du groupe de travail sur l’OpenDocument Format est d’ailleurs annoncé sur LinuxFr.

En 2006 une première version 1.0 est publiée qui devient la norme ISO/IEC 26300. Elle sera suivie de quatre autres versions :

  • ODF 1.1 en 2007, ajout du support des formules,
  • ODF 1.2 en 2011 avec de nouvelles fonctionnalités,
  • ODF 1.3 en 2020 avec une focalisation sur la signature électronique et le chiffrement ainsi qu’une amélioration des fonctionnalités de formatage du texte et une amélioration de l’accessibilité,
  • et ODF 1.4 en 2024 qui poursuit notamment le travail d’amélioration de l’interopérabilité et de l’accessibilité en proposant par exemple une sémantique plus claire pour les dispositifs d’assistance ainsi qu’une meilleure navigation pour les lecteurs d’écran, elle ajoute également des contrôles de formulaires entre autres nouveautés.

Les débuts de l’ODF se sont révélés houleux du fait de la contre-offensive lancée par Microsoft qui ne voulait pas perdre son monopole de fait. Il s’ensuivra une guerre d’influences auprès de l’ISO pour que l’OOXML soit considéré comme une norme ISO.

Une petite histoire de son adoption à travers les dépêches, journaux et liens de LinuxFr.org

En janvier 2010 le Danemark rendait obligatoires les formats normalisés ODF et PDF mais ne décidera de passer à Linux et LibreOffice que quinze plus tard. En juin 2010, l’Union européenne se posait la question des logiciels propriétaires dans les États de l’Union, une question qu’elle continue à se poser tout en l’ayant adopté comme format d’enregistrement depuis.

Le Ministère italien de la défense commençait à migrer vers LibreOffice et ODF en septembre 2015.

En France, la version datée d’avril 2016 2 du Référentiel Général d’Interopérabilité (RGI), recommande l’utilisation du format ODF comme seul format bureautique. La même année, la plateforme de dépôts de brevet de l’INPI s’assied sur ces recommandations et impose le format OOXML… En juillet 2025 un rapport sénatorial dénonce un recours massif de l’État français aux GAFAM.

Le gouvernement fédéral allemand s’engage à utiliser le standard ODF en avril 2025. Le Schleswig-Holstein avait, quant à lui, pris la décision de passer à LibreOffice en mars.

Les types de fichiers ODF

L’ODF est un format de document de travail, donc de fichiers amenés à être modifiés, pas un format d’archivage comme peut l’être le PDF, voire, le format EPUB. Il comporte plusieurs « sous-formats » selon le type d’application qui sert à les générer.

Illustrations des formats de fichier texte, tableur, présentation et image

Les plus utilisés et, probablement, les plus connus :

  • ODP, pour les présentations, et sa variante OTP avec le T de « template » pour les modèles,
  • ODS, pour les feuilles de calcul (« spreadsheet » en anglais), et sa variante OTS,
  • ODT pour le traitement de texte, et sa variante OTT ainsi que, pour les documents maîtres : ODM et OTM. Ces derniers étant prévus pour gérer des fichiers volumineux : un document principal, le document maitre, contient du texte et des liens vers des sous-documents, des chapitres de livres par exemple. Chaque sous-document pouvant être travaillé individuellement.

À cela s’ajoutent :

  • ODB pour les bases de données, qui, à ma connaissance, est essentiellement utilisé dans Base de LibreOffice et d’OpenOffice,
  • ODG, avec sa variante OTG pour les images vectorielles, utilisé essentiellement, à ma connaissance, par LibreOffice, Karbon de la suite Caligra et OpenOffice ; MsOffice peut, toutefois, ouvrir les fichiers ODG. Le format OTG accepte plusieurs pages et plusieurs calques,
  • ODF, avec sa variante OTF, pour les formules de mathématiques, on peut ainsi créer des formules de mathématiques séparément et les insérer dans des documents, mais il est possible aussi d’ajouter directement une formule dans un document, auquel cas elle ne fait pas l’objet d’un fichier à part,
  • ODC, avec sa variante OTC pour les graphiques (« chart » en anglais).

Quelques avis

Le 25 juillet 2007, dans Red Hat Magazine, T. Colin Dodd considérait le format comme inévitable. Il rapportait l’histoire d’un scientifique qui voulait, en 1999, consulter les données de la sonde Viking sur Mars, des données datant de 1979. Il exposait que après avoir retrouvé une copie des données sur bande magnétique (avec bien du mal), celles-ci étaient « dans un format si ancien que le programmeur qui le connaissait était mort. ».

Le format a été qualifié de révolutionnaire car :

il offre une alternative ouverte et interopérable aux formats propriétaires. Son architecture basée sur XML garantit la pérennité des données et facilite les échanges entre différents logiciels. Plongeons dans les arcanes de ce standard qui redéfinit notre approche du partage et de la conservation de l’information à l’ère numérique. Jenny, PC expert, 27 mars 2025.

Et, bien évidemment, ce qui a été relevé c’est qu’il est un :

symbole d’interopérabilité et de liberté numérique face à l’hégémonie de formats fermés tels que DOCX, PAGES ou Google Docs. actualitéscloud, 20 mai 2025.

et que c’est

à ce jour le seul format réellement ouvert pour les documents bureautiques. Goodtech.info.

Références

Quand on ne maîtrise pas trop un domaine, il faut lire pour compenser. On trouvera donc ci-dessous une bonne partie de ce qui a servi à bâtir cette dépêche qui m’a donné beaucoup de travail l’occasion de transformer en EPUB des documents sur le système métrique pour les rendre plus accessibles et utilisables. La majorité des sources est accessible en ligne.

L’histoire du système métrique

Un certain nombre de ces références sont issues de la BnF Gallica. J’en ai « epubifié » certaines. Je les propose en téléchargement également aux formats PDF et PDF hybride. Si vous préférez l’aspect des versions originales : elles sont téléchargeables sur le site de la BnF Gallica. Il est même possible de commander à ladite BnF un fac-similé imprimé.

L’ODF

Et si vous voulez un peu bricoler, dans le cadre d’animations et faire toucher du doigt concrètement la différence entre un format ouvert et un format propriétaire, il y a ces deux petits livres à tricoter. Mais on peut voler l’idée pour la reproduire dans d’autres matériaux.

Remerciements

En travaillant sur la version EPUB du livre Le Système décimal j’ai dû appeler à l’aide pour une formule. Insérer une formule de math dans Writer de LibreOffice est d’une simplicité enfantine, par contre, écrire la formule réclame des connaissances qui ne sont pas du tout innées. Je remercie les mastodonautes qui ont répondu à mon appel à l’aide et ont eu la gentillesse d’écrire la formule. Un grand merci à Cévhé qui a relu le fichier du livre et a corrigé quelques bourdes restantes.


  1. Les artistes avaient notamment pour tâche d’effectuer les travaux de gravure sur les étalons pour indiquer les graduations. Dans son rapport de 1790, Prieur précisait que cette opération ne devait « être confiée qu’à un artiste très-habile et l’extrême soin que ce travail exige indique assez que ce n’est pas sur cet objet qu’il convient de rechercher l’économie. »  

  2. Ceci est bien la preuve qu’il ne faut pas faire confiance aux littéraires, ces gens-là ne respectent rien et sont capables de jouer avec les nombres comme n’importe quel savant de Marseille. 

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Des nouvelles de Fortran n°7 - juillet 2025

Dans les actualités Fortran, on abordera en particulier la troisième édition de la conférence internationale Fortran, la sortie officielle du nouveau compilateur Flang dans LLVM et les actualités du gestionnaire de paquets fpm. Et comme c'est bientôt les vacances, on terminera par une section consacrée à Fortran dans la culture populaire, où l'on apprendra entre autres que le Nostromo avait un neuvième passager…

Sommaire

Appel à contributions pour FortranCon 2025

FortranCon 2025 est la troisième édition de la conférence internationale sur le développement et l'utilisation du langage de programmation Fortran, et aura lieu les 4 et 5 novembre 2025. Avec cette conférence, nous avons l'intention de rassembler les développeurs actifs du projet Fortran dans tous les domaines : les développeurs de bibliothèques et d'outils ainsi que les personnes utilisant Fortran pour développer des applications scientifiques, afin de partager leur expérience et d'échanger des idées. L'événement est organisé sur Zoom grâce aux contributions de la communauté pour la communauté.

Le discours d'ouverture sera prononcé par John Reid, membre actif du comité Fortran de l'ISO/IEC JTC1/SC22/WG5 (et animateur du comité de 1999 à 2017). C'est également l'un des auteurs du livre de référence Modern Fortran explained, dont la sixième édition (couverture orange) inclut Fortran 2023.

Les vidéos des présentations des éditions 2020 et 2021 sont toujours en ligne sur la chaîne YouTube FortranCon.

Dates limites

  • Inscription (gratuite) : 15 octobre 2025.
  • Premier appel à résumés : 1er août 2025 (décisions envoyées avant le 30 août 2025).
  • Deuxième appel à résumés : 1er septembre 2025 (décisions envoyées avant le 30 septembre 2025).

Sur le front des compilateurs

Compilateurs opérationnels

Flang (LLVM)

Dans LLVM 20.1, sorti en mars 2025, flang-new a été rebaptisé flang et remplace son prédécesseur du même nom. Il s'agit donc du lancement officiel de ce nouveau compilateur soutenu par NVIDIA et le Département de l’Énergie américain, après sept ans de développement. Un article très complet du blog LLVM relate cette longue aventure :

La doc de Flang présente même une pierre de Rosette pour les gens connaissant le C ou le C++ et souhaitant débuter en Fortran.

Intel ifx

Intel ifx (basé sur LLVM) est actuellement en version 2025.2.0, avec en particulier quelques améliorations du côté Fortran 2023 et OpenMP 6.0, par rapport à la 2025.1.0 qui améliorait également ces deux points.

GFortran (GCC)

GFortran est en version 15.1. Attention, les fichiers .mod générés par GFortran 15 ne sont pas compatibles avec les versions antérieures. Si vous ne savez pas de quoi je parle, les .mod c'est un peu l'équivalent des fichiers headers .h en C, mais en pire puisque ce sont des fichiers binaires pas normalisés, donc pas interopérables entre les différents compilateurs Fortran, voire comme ici entre différentes versions. Bref, pas glop !

Parmi les six projets GCC du GSoC 2025, on en trouve un pour améliorer la prise en charge par GFortran de certaines fonctionnalités des normes Fortran 2018 et 2023. Le compilateur libre a également reçu 360 k€ de la Sovereign Tech Agency allemande, en particulier pour offrir un support direct des coarrays (co-tableaux) pour le calcul parallèle sur systèmes à mémoire partagée (pour l'instant il est nécessaire d'installer la bibliothèque OpenCoarrays pour les utiliser avec GFortran).

En gestation

Le développement du compilateur LFortran continue. Il s'approche tranquillement de la version beta, compilant déjà huit bibliothèques Fortran matures sur les dix définies pour ce jalon. On notera d'ailleurs que parmi les cinq projets de la communauté Fortran-lang du GSoC 2025, un projet a pour objectif de réussir à compiler le gestionnaire de paquets fpm avec LFortran. Une bonne façon de faire progresser le compilateur !

Fedora ou F comme Fortran ?

Une des meilleures distributions Linux pour faire du Fortran est peut-être Fedora. On trouve en effet directement dans ses dépôts pas moins de trois compilateurs Fortran libres en versions récentes : GFortran (GPL), Flang (licence Apache) et LFortran (licence BSD). Quand à Intel ifx, on pourra facilement l'installer par exemple dans un environnement Conda (paquet ifx_linux-64). Et avec la Fedora Rawhide, c'est bien sûr encore plus saignant (bleeding edge) au niveau des versions !

Communauté Fortran-lang

Projets Fortran-lang

fpm

Le gestionnaire de paquets Fortran fpm est disponible en version 0.12 depuis le 18 mai 2025. Parmi les nouveautés, on notera :

  • un fichier compile_commands.json exporté par défaut à chaque fois que l'on construit un projet avec fpm, ce qui facilitera son intégration avec d'autres outils, en particulier les IDE.
  • Deux nouveaux métapackages disponibles : BLAS/LAPACK et NetCDF.
  • La possibilité de générer des bibliothèques partagées, et non plus uniquement statiques.

Du côté des greffons, on citera fpm-modules et fpm-deps qui permettent de visualiser les dépendances d'un projet fpm à l'aide d'outils tels que Mermaid ou Graphviz.

Quelques projets divers

  • Fortitude 0.7.3 : un linter Fortran sous licence MIT, écrit en Rust et installable via Python.

  • Seer : une interface graphique pour gdb pour Linux, qui prend en charge de nombreux langages, dont Fortran. Licence GPL 3.0.

  • Codee commercialise un analyseur de code Fortran / C / C++ et un formateur de code Fortran. Ce dernier peut néanmoins être utilisé gratuitement pour un usage personnel. « Codee se distingue en tant que plateforme de développement Fortran, C et C++, en favorisant la correction du code, la modernisation, la sécurité, la portabilité et l'optimisation afin d'aider les développeurs à fournir des logiciels rapides, faciles à maintenir et fiables, conformes aux normes de l'industrie. » Codee vient de sortir en version 2025.3.

Fortran et culture populaire

Alien

Comme vous le savez peut-être, le Nostromo est le vaisseau spatial du film Alien (1979). Lors de l'atterrissage sur la lune Acheron LV-426, l'ordinateur de bord affiche un modèle 3D de son relief. Sur cet extrait sur YouTube, vous pouvez le voir plusieurs fois à partir de l'instant 2:28. Ce modèle est présenté par son auteur dans l'article suivant :

Le code ne faisait que 14 pages de code FORTRAN et son auteur explique :

Le matériel utilisé était un Prime 300 connecté à un FR 80 de III (Information International, Inc.) qui peut tracer directement sur pellicule. Le logiciel d'animation Frolic, développé par C. Emmett, tournait sur ce système dans les laboratoires du SRC à Oxfordshire.

Mon programme était écrit en FORTRAN avec des appels aux sous-routines Frolic.

Années 70 obligent, le graphisme n'est pas sans rappeler le signal du pulsar CP1919 tracé informatiquement par Harold D. Craft Jr dans sa thèse soutenue en 1970 et popularisé par Peter Saville sur la pochette de l'album Unknown Pleasures, dont je vous avais déjà parlé. Quarante-six ans après la sortie du film Alien, on pourra s'amuser de constater que n'importe quelle voiture actuelle a un écran couleur bien plus high-tech que celui du Nostromo ! Mais dix ans avant, le premier alunissage avait eu lieu avec une informatique et une électronique qui semblent aujourd'hui rudimentaires. C'est que se déplacer est avant tout un problème de mécanique (éventuellement céleste). Côté déplacement, le Nostromo reste quand même très largement en avance sur les starships actuels.

Fortran dans les dessins animés américains

Le langage semble avoir laissé des traces, plutôt bienveillantes, chez les (vieux) étudiants américains :

  • Dans la série d'animation Futurama, Olde Fortran est une marque de liqueur de malt (bière forte) consommée par le robot Bender, une sorte de boisson énergisante pour lui. On y voit aussi des jackpots Wheel of Fortran (roue de la fortune… Algorithme Monte Carlo ?).
  • Dans Les Simpson, épisode « L'homme qui vint pour être le dîner » (2015), un extraterrestre dit à 1:23 :

« En tant que jeunes choses insignifiantes, nous sommes éduqués dans la sagesse de l'univers. Physique, mathématiques, FORTRAN - le plus grand des langages de programmation ! »
(“As young thinglings, we are schooled in the wisdom of the universe. Physics, mathematics, FORTRAN - the greatest of the programming languages!”)

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •  

Common Lisp ces deux dernières années: un monstre de l'évolution parmi nous

Le langage Common Lisp n’est pas un dinosaure éteint. À l’instar de certains requins, c’est une bestiole qui n’a cessé d’évoluer pour devenir un prédateur redoutable aujourd’hui. C’est un langage qui éclate l’auteur du journal à l’origine de cette dépêche, dzecniv, au quotidien depuis des années, avec lequel il déploie certains services facilement (venant de Python, il apprécie le déploiement), alors il a de nouveau rédigé un petit récapitulatif de ce qui s’est passé dans cet écosystème ces deux dernières années.

Vous prendrez garde à ne pas conclure que les bibliothèques et projets qui sont présentés ici sont les seuls de leur domaine, ni que tous les nouveaux projets sont listés, ni qu’il s’agit d’un aperçu complet de l’écosystème.

Sommaire

(NdM: dans la suite, l'auteur du journal à l’origine de la dépêche s'exprime à la première personne)

Pour avoir un aperçu plus global de l'écosystème, veuillez faire une petite recherche sur GitHub, surveillez reddit/r/lisp et reddit/r/common_lisp, utilisez un moteur de recherche, ou commencez par jeter un coup d’œil sur la liste awesome-cl.

Il me tient à cœur de faire cette liste, car de l’extérieur on ne se rend pas forcément compte à quel point, certes, le langage et l’écosystème sont stables, mais qu’ils évoluent également.

S’il fallait en choisir trois, je mettrais ces travaux en avant :

  1. je suis impressionné par tout ce qui se passe autour de l’implémentation SBCL (et des travaux en cours sur ECL et ClozureCL)
  2. j’adore l’éditeur Lem, et suis également impressionné par tous les modules qu’il comporte déjà, par la qualité de sa base de code et par la facilité avec laquelle on peut l’explorer, ce qui est aussi rendu facile par l’interactivité du langage
  3. plusieurs outils pour écrire et exécuter des scripts plus rapidement que d’habitude émergent, et sont nécessaires à mon avis.

Bonne découverte.

Opus Modus v3

Hacker News est passé de Racket à Common Lisp (SBCL)

C’est une nouvelle plutôt cool pour nous les publicitaires pro du langage. HN a été développé avec le dialecte de Lisp Arc, initialement implémenté avec Racket, et pour des questions de performance ils l’ont ré-implémenté en Common Lisp, avec SBCL.

Pour plus de contexte : Paul Graham (avec Robert Morris) crée Viaweb en 1995, le premier fournisseur d’applications en ligne (pour garder la terminologie de Wikipédia, page Paul Graham), développé en Common Lisp, avec l’implémentation CLisp. Cette implémentation existe toujours et est légèrement développée, mais il est généralement conseillé d’utiliser SBCL (qui colle mieux au standard, qui est plus performante, qui donne plus d’indications de typage pendant le développement, etc.). “PG” vend Viaweb à Yahoo en 1998 (pour ce qui devient Yahoo! Store), et fonde l’incubateur de start-ups YCombinator. PG n’était pas satisfait par Common Lisp, au tout au moins (là, je n’ai pas les sources) voulait un dialecte plus succinct, qui permette d’écrire des applications web de manière plus compacte. Il ébauche un dialecte de Lisp, appelé Arc, et l’implémente avec Racket (MzScheme à l’époque). Le site de Hacker News (géré par YCombinator) fut donc écrit en Arc avec cette première implémentation.

Le responsable (ou un des responsables) du portage vers SBCL et modérateur d’Hacker News, dang, explique :

[Clarc, l’implémentation en Common Lisp] est beaucoup plus rapide et permet de faire tourner HN sur plusieurs cœurs. Ça a été un travail de fond de quelques années, principalement parce que je ne trouve pas le temps pour travailler dessus.

Les sources du site d’HN ne seront pas publiées pour ne pas dévoiler de multiples mécanismes anti-spam et anti-abus (les séparer du code source serait « beaucoup de travail »), mais les sources de Clarc pourraient l’être, avec un peu plus d’efforts pour les séparer du code d’HN.

https://lisp-journey.gitlab.io/blog/hacker-news-now-runs-on-top-of-common-lisp/

C’est quoi Common Lisp ?

C’est un langage multi-paradigmes, et selon les implémentations, comme avec SBCL : compilation en code machine très performant, typage graduel, très interactif :

  • débogueur interactif, permet de corriger une fonction, de la re-compiler et de reprendre l’exécution depuis la fonction boguée, sans devoir tout relancer de zéro (démo youtube)
  • ne perd pas l’état du programme en cours quand on travaille avec un bon éditeur
  • permet même de contrôler comment des instances sont mises à jour lorsque la définition d’une classe change (pas forcément utile pour le quotidien on est d’accord, encore que, quand on sait le faire on en tire parti, mais c’est pensé pour les systèmes à longue durée de vie, qu’on peut patcher pendant qu’ils tournent),
  • un REPL avec beaucoup de fonctionnalités (ne redémarre jamais, on peut installer des bibliothèques depuis le REPL), extrêmement utile et satisfaisant en tant que développeur (j’en ai toujours un d’ouvert),
  • on compile fonction par fonction avec un raccourci clavier, SBCL nous donne beaucoup de warnings et d’erreurs de typage instantanément (et pour du Haskell intégré dans Common Lisp, cf. Coalton ci-dessous).

Définir une fonction :

(defun hello ()
  (print "hello!"))

;; Appeler la fonction:
(hello)

Compiler la fonction :

  • soit C-c C-c depuis tout bon éditeur, sans quitter le programme, sans redémarrer quoi que ce soit,
  • soit C-c C-k depuis l’éditeur, pour re-compiler le fichier,
  • soit sbcl --load hello.lisp depuis la ligne de commande (ce qu’on va donc faire rarement, seulement de temps en temps pour vérifier que ça passe, pour construire un binaire, pour déployer depuis les sources…)

Liens :

La communauté

Elle est active, il y a des évènements IRL réguliers dans quelques villes, l’European Lisp Symposium chaque année…

On peut voir les chiffres de la communauté reddit/r/common_lisp (plus petite que le plus général “lisp”),

La communauté est présente sur reddit, Discord (lien: https://discord.gg/hhk46CE), IRC, Mastodon, LinkedIn…

Documentation

On a la chance d’avoir de très bons livres sur CL, mais historiquement peu de doc en ligne. Ça évolue.

Les spécifications du langage ont été portées vers des sites beaucoup plus sympas à l’utilisation que le site de référence, comme le Common Lisp Community Spec, site également publié sous licence libre,

Le Common Lisp Cookbook reçoit un bon nombre de contributions. On peut le trouver en EPUB : https://github.com/LispCookbook/cl-cookbook/releases/tag/2025-01-09

Le livre PAIP est maintenant disponible en ligne : https://norvig.github.io/paip-lisp/#/

J’ai sorti un nouveau site sur le développement web en Common Lisp : https://web-apps-in-lisp.github.io/index.html

FreeCodeCamp a publié un cours “complet” sur Youtube : https://www.reddit.com/r/Common_Lisp/comments/1i1e766/lisp_programming_language_full_course_for/

cf. d’autres vidéos sympas ici : https://www.cliki.net/Lisp%20Videos

J’ai sorti neuf vidéos (1h22) pour expliquer CLOS, le système objet : https://lisp-journey.gitlab.io/blog/clos-tutorial-in-9-videos-1h22min--read-the-sources-of-hunchentoot-and-kandria/

Les implémentations

Il s’en passe des choses.

SBCL

SBCL a toujours des sorties mensuelles : https://www.sbcl.org/news.html

SBCL s’est vue dotée d’un nouveau GC.

Entre autres choses, rapidement :

  • appeler SBCL comme une bibliothèque partagée depuis C ou Python, avec sbcl-librarian (par les mêmes personnes derrière Coalton) (recette sur le Cookbook),
  • compilation croisée pour Android
  • support pour Haiku
  • « memory allocation arenas » pour arm64
  • améliorations du module sb-simd
  • SBCL est porté pour la Nintendo Switch, pour les besoins du jeu Kandria (cf plus bas)
  • installation facile sur Windows avec Chocolatey (non officiel)
  • ou des builds quotidiens pour MSYS2

ABCL - CL pour Java

ABCL a sorti des nouvelles versions :

Et Clojure ? Je ne connais qu’à peine (ça reste du Java, ça reste gourmand en ressources, le REPL est moins riche en fonctionnalités, le langage ne donne pas d’erreurs de type à la compilation avec un C-c C-c), donc je peux juste citer d’autres lispers. cf. :

CCL, LispWorks, Allegro, ECL, CLASP, SICL, LCL, Alisp, Medley

Ces implémentations sont actives.

ECL a un module pour WASM, en cours de développement mais qui permet déjà de lancer Maxima, un logiciel de calcul formel, dans un navigateur.

Breaking news: ECL vient d'être accepté par NLNet pour justement travailler sur ce module.

Pour info, on peut également utiliser Maxima via SageMath, avec KDE Cantor, avec l'interface graphique wxMaxima, sur Android, dans un "notebook" Jupyter, via Emacs avec le paquet "maxima-mode", et on peut faciliter son utilisation depuis un REPL Common Lisp et avec maxima-interface.

CLASP, pour interfacer CL et C++ nativement, est toujours développé par une start-up en bio technologies :

SICL est peut-être le futur de Common Lisp. C’est une nouvelle implémentation, modulaire. Des bouts sont déjà utilisés dans d’autres implémentations.

Medley est la ré-incarnation de la Medley Interlisp Lisp Machine. Je ne l’ai pas connue, trop jeune. On peut la tester via un navigateur.

LCL pour Lua Common Lisp est une nouvelle implémentation, Alisp est une nouvelle implémentation en cours de développement (en C).

Industrie, offres d’emplois

Il y a peu d’offres, publiques en tout cas, on voit des opportunités passer de manière moins formelle sur les réseaux. Mais il y en a (cf. le lien original, par ex. une offre pour 3E à Bruxelles).

Et oui, certaines entreprises utilisent toujours Common Lisp, et certaines entreprises choisissent de leur plein gré ce langage comme base de leurs nouveaux produits. On le voit surtout dans le domaine de l’informatique quantique, et toujours pour une certaine forme d’IA. Mais des boîtes plus classiques peuvent en tirer parti. On voit des logiciels de management de projet (Planisware, cocorico c’est une boîte française, développé avec l’implémentation Allegro), du développement web, des bots internet…

Quelques exemples :

et des usages, moins dans l’actualité :

Projets cools

Éditeurs

Éditeurs pour Lisp : https://lispcookbook.github.io/cl-cookbook/editor-support.html (il y en a d’autres qu’Emacs, mais essayez donc !)

Lem : https://lem-project.github.io/

Construit en CL, il est donc extensible à la volée en Lisp, comme Emacs. Contient un client LSP qui fonctionne pour de nombreux autres langages, et des modes syntaxiques plus classiques pour nombre d’autres.

Quelques fonctionnalités de Lem :

  • mode vim et Emacs
  • interface Git interactive (opérations classiques, rebase interactive (sans les actions “edit” ou “reword”))
  • navigateur de fichiers
  • panneau de navigation
  • terminal via libvterm
  • curseurs multiples
  • pour le terminal (ncurses) et le bureau (SDL2), et une version “cloud” pour édition collaborative en chantier.
  • Tetris (en mode graphique)

Lem filer

Nouveau projet : Neomacs https://github.com/neomacs-project/neomacs basé sur Electron

Coalton : comme Haskell, pour Common Lisp

En les citant, Coalton c’est :

the implementation of a static type system beyond Haskell 95. Full multiparameter type classes, functional dependencies, some persistent data structures, type-oriented optimization (including specialization and monomorphization). All integrated and native to CL without external tools.

C’est une bibliothèque logicielle qu’on installe comme n’importe quelle autre, mais qui fournit un autre langage pour écrire des programmes typés statiquement, tout en s’interfaçant de manière native avec son langage hôte.

Coalton est développé à l’origine pour des boîtes dans l’informatique quantique. Cf le compilateur quilc.

Ce n’est donc pas un jouet. Et si les développeurs ne font pas un tonnerre de tous les diables pour montrer leur travail incroyable, c’est qu’ils bossent ;) (mais ils répondront au FUD sur HN).

Les gestionnaires de bibliothèques

Depuis au moins 10 ans, le « package manager » qui rend de fidèles services est Quicklisp. Il sort des distributions de bibliothèques, qui ont été vérifiées pour charger correctement. La dernière en date était en octobre :

Et oui, elle date un peu. Plusieurs explications à cela, à lire et discuter par ailleurs.

Aujourd’hui, de nouveaux outils émergent:

Développement de jeux

Le meilleur exemple dans ce domaine est Kandria, qui est sorti sur Steam :

  • https://kandria.com/
  • retours d’expérience (anglais): où oui, Common Lisp (ici SBCL) est assez performant pour faire tourner un jeu, y compris sur la Nintendo Switch, à condition de surveiller la création d'objets en mémoire.

Son auteur augmente maintenant son moteur de jeu pour la 3D. On peut le suivre et voir une démo sur Mastodon.

On trouvera d’autres ressources, par exemple :

Une fonctionnalité incroyablement utile pour les développeurs, est qu’on peut développer son jeu pendant qu’il tourne. Compiler une fonction avec C-c C-c, et voir le jeu changer. Sans tout relancer de zéro à chaque fois.

La communauté organise 2 fois par an des « Lisp Game Jam ». Où tous les dialectes de Lisp sont permis ;)

Interfaces graphiques

C’est un large sujet, et de multiples bibliothèques existent, plus ou moins faciles à prendre en main, plus ou moins portables, etc. Mais voyez la capture d’écran d’Opus Modus en introduction : c’est bien un logiciel graphique multi-plateformes. Dans ce cas, développé avec LispWorks. Par ailleurs, LispWorks possède un “runtime” pour Android et iOs.

Je vais vous laisser voir awesome-cl ou l’article original.

Le web, les web views, Electron

Le web en Common Lisp c’est faisable (et je le fais), on a pas mal de bibliothèques pour divers besoins, on a quelques “frameworks”, minimalistes. Il faut être prêt à mettre les mains dans le cambouis, à mieux connaître le web que lorsqu’on utilise des “frameworks” de haut niveau qui ont beaucoup de couches d’abstraction. Ceci dit, la malléabilité du langage, sa performance, son multi-threading, ses excellents outils de développement, ses fonctionnalités avancées, son déploiement facile… font que certaines choses compliquées dans un autre langage, ou qui nécessiteront une bibliothèque, se font en quelques lignes de manière native.

Ce qui me plaît, c’est la stabilité du langage et de l’écosystème, l’efficience des programmes (de l’ordre de C ou Java, une comparaison parmi d'autres, retours à trouver dans ses articles postérieurs et sur HN), et encore et toujours l’interactivité pendant le développement, le fait que le serveur de développement ne redémarre jamais, ne me fait pas attendre et reste réactif, et comme je disais plus haut le déploiement d’applications, facile : je peux générer un binaire de mon appli web, comprenant tous les fichiers statiques (templates HTML, le JavaScript, etc), le copier sur mon serveur, et c’est tout. Ou le vendre et ne pas devoir accompagner mon client pendant l’installation.

C’est ce que dit aussi l’auteur de Screenshotbot (projet open-source d’automatisation de prise de captures d’écran). Quand sa concurrence fait installer ses solutions via npm, il livre un petit binaire qui fait tout. Et j’ai bien dit petit, donc ±10Mo pour le projet et toutes ses dépendances, car il utilise LispWorks, qui permet d’enlever le code mort de l’image finale, alors que SBCL ne permet pas (encore ?) cela et les binaires pèsent ±30Mo compressés, 80Mo non compressés. Néanmoins, un binaire (compressé) de 30Mo (c’est le cas pour une application à moi qui inclue une douzaine de dépendances) contient le débogueur, le compilateur… ce qui permet de se connecter à une application pendant qu’elle tourne et de charger du code à la volée. On peut s’en servir pour observer ce qu’il se passe autant que pour faire des mises à jour. Au choix ! Mais oui, on peut garder les bonnes pratiques de l’industrie.

Pour démarrer sur le sujet :

Comme outils moins classiques, on a CLOG (CL Omnificient GUI), qui permet le développement d’applications web un peu comme une interface graphique, avec une grande interactivité pendant le développement (via websockets).

CLOG

L’infatigable lisper @mmontone se lance dans mold-desktop, un desktop pour le web, en suivant les principes de « moldable software ».

mold-desktop

Enfin, un article pour présenter les trois « web views » pour Common Lisp: webview, webui, Electron. On peut délivrer une application multi-plateformes écrite avec les technologies du web.

Une application web lancée en local dans un navigateur, avec webview

Scripting

En Common Lisp peut lancer un programme depuis les sources, ou bien générer un exécutable.

Mais, par défaut, l’un ou l’autre sont un peu lourds à l’usage et ne satisfont pas vraiment le développeur pressé qui souhaite lancer un petit script écrit en Lisp. C’est aussi un peu pour cela qu’on reste tant dans le REPL, où toute procédure une fois définie est instantanément appelable. On n’a pas véritablement besoin de passer par le terminal.

Mais des projets élargissent les possibilités.

kiln: « Infrastructure for scripting in Common Lisp to make Lisp scripting efficient and ergonomic » - soit, pouvoir appeler du Lisp depuis le shell de manière légère.

unix-in-lisp - il paraît fou ce projet : on “monte” les utilitaires Unix dans son image Lisp.

CIEL Is an Extended Lisp (discussion HN) - 100% Common Lisp, « batteries included »

  • une collection de bibliothèques pour rendre CL plus utile au quotidien aujourd’hui : inclue des bibliothèques pour le JSON, le web, le CSV, les expressions régulières…
  • un moyen de lancer des scripts au démarrage rapide et sans étape de “build”, avec toutes les bibliothèques à disposition.

Vidéos

Voici une petite sélection.

Des démos d’applications :

Apprendre :

De l’European Lisp Symposium 2024 :

Conclusion

C’était un compte-rendu écourté qui vous aura, je l’espère, donné envie d’en voir plus.

En Common Lisp on s’éclate ET on délivre du logiciel, ce qui n’est pas donné à tout le monde ;)

Commentaires : voir le flux Atom ouvrir dans le navigateur

  •