David Madore's WebLog: 2024-01

Vous êtes sur le blog de David Madore, qui, comme le reste de ce site web, parle de tout et de n'importe quoi (surtout de n'importe quoi, en fait), des maths à la moto et ma vie quotidienne, en passant par les langues, la politique, la philo de comptoir, la géographie, et beaucoup de râleries sur le fait que les ordinateurs ne marchent pas, ainsi que d'occasionnels rappels du fait que je préfère les garçons, et des petites fictions volontairement fragmentaires que je publie sous le nom collectif de fragments littéraires gratuits. • Ce blog eut été bilingue à ses débuts (certaines entrées étaient en anglais, d'autres en français, et quelques unes traduites dans les deux langues) ; il est maintenant presque exclusivement en français, mais je ne m'interdis pas d'écrire en anglais à l'occasion. • Pour naviguer, sachez que les entrées sont listées par ordre chronologique inverse (i.e., la plus récente est en haut). Cette page-ci rassemble les entrées publiées en janvier 2024 : il y a aussi un tableau par mois à la fin de cette page, et un index de toutes les entrées. Certaines de mes entrées sont rangées dans une ou plusieurs « catégories » (indiqués à la fin de l'entrée elle-même), mais ce système de rangement n'est pas très cohérent. Le permalien de chaque entrée est dans la date, et il est aussi rappelé avant et après le texte de l'entrée elle-même.

You are on David Madore's blog which, like the rest of this web site, is about everything and anything (mostly anything, really), from math to motorcycling and my daily life, but also languages, politics, amateur(ish) philosophy, geography, lots of ranting about the fact that computers don't work, occasional reminders of the fact that I prefer men, and some voluntarily fragmentary fictions that I publish under the collective name of gratuitous literary fragments. • This blog used to be bilingual at its beginning (some entries were in English, others in French, and a few translated in both languages); it is now almost exclusively in French, but I'm not ruling out writing English blog entries in the future. • To navigate, note that the entries are listed in reverse chronological order (i.e., the most recent is on top). This page lists the entries published in January 2024: there is also a table of months at the end of this page, and an index of all entries. Some entries are classified into one or more “categories” (indicated at the end of the entry itself), but this organization isn't very coherent. The permalink of each entry is in its date, and it is also reproduced before and after the text of the entry itself.

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]

Entries published in January 2024 / Entrées publiées en janvier 2024:

↓Entry #2781 [older| permalink|newer] / ↓Entrée #2781 [précédente| permalien|suivante] ↓

(dimanche)

Combien y a-t-il de continents ? — et l'apprentissage du recul face aux conventions

Si on demande à une personne ayant grandi en France combien il y a de continents, et de les lister, je pense que la réponse sera généralement cinq, avec comme liste l'Europe, l'Asie, l'Amérique, l'Afrique et l'Océanie (dans un certain ordre). Il me semble que ceci est la liste « traditionnelle » des continents vus par la France, ou par la culture française, et probablement enseignée dans le système éducatif français. En tout cas c'est la liste retenue par (le Français) Pierre de Coubertin quand il s'est agi de fixer la symbolique du drapeau d'une certaine compétition sportive[#]. Je n'ai pas de souvenir très précis de ce que j'ai pu moi-même apprendre à l'école comme liste des continents, mais je suis certain que l'Europe était considérée comme distincte de l'Asie (la limite étant placée au niveau de l'Oural) et je crois bien que l'Amérique était considérée comme un seul continent et que j'étais moi-même un peu scandalisé par l'arbitraire de cette différence de traitement. Je crois aussi que l'Antarctique était mentionné comme devant logiquement être un continent mais on l'a oublié mais comme personne n'y habite ce n'est pas grave.

[#] Dont je n'ai probablement pas le droit d'écrire le nom ici, surtout si je le mets à proximité du nom de la ville où j'habite et de l'année en cours, sans payer les organisateurs de la dite compétition sportive, sous peine de voir débarquer chez moi la police de la propriété intellectuelle, parce que cette compétition défend sa marque avec une vigueur qui démontre à elle seule que leur but n'est pas de faire du sport mais de faire du fric. Oups, pardon, j'ai digressé.

Ajout () : On me fait remarquer qu'il y a sur le parvis du musée d'Orsay, créées pour le palais du Trocadéro de l'Exposition universelle de 1878, des sculptures représentant six continents (l'Amérique du Nord étant distincte de l'Amérique du Sud), ce qui vient mettre en doute le fait qu'il y ait une liste française traditionnelle unique.

Je n'ai pas réussi à trouver s'il y a actuellement une liste officielle à enseigner dans les écoles françaises (un document qui dirait que, pour les besoins de l'enseignement en France, l'Amérique du Nord et l'Amérique du Sud ne sont pas deux continents distincts, par exemple : je suis tombé sur cette page sur le socle commun de connaissances, de compétences et de culture qui a l'air pertinent, mais aucune des pages liées ne semble plus précise que nommer et localiser les grands repères géographiques du monde (continents, [etc.])). Si quelqu'un a des enfants qui sont récemment passés dans les écoles françaises (ou est un enfant récemment passé dans les écoles françaises, après tout ne faisons pas d'hypothèse hasardeuse, on a le droit de lire mon blog à 12 ans), je veux bien qu'on me dise ce qu'on y apprend.

La France n'est évidemment pas la seule à enseigner cette liste précise de cinq continents, mais d'autres pays font des choix différents (et bien sûr, ce n'est pas comme si tout le monde était forcément d'accord au sein d'un même pays). Les points de désaccord principaux semblent être : ① si l'Amérique est un contient ou deux, ② si l'Europe et l'Asie sont un continent ou deux, ③ si l'Océanie est un continent (c'est un peu un oxymore, le continent d'Océanie !) et, si ce n'est pas le cas, comment on classe l'Australie, et ④ ce qu'on doit faire de l'Antarctique. (Après ça, bien sûr, il y a des désaccords plus secondaires sur le tracé précis des frontières intercontinentales, ou sur le statut des îles.) Le seul vrai point de consensus a l'air d'être que l'Afrique est un continent (mais même là, je n'oserai pas demander si le Sinaï est en Afrique ou en Asie). Cette vidéo de la chaîne YouTube Map Men, en plus d'être assez hilarante comme tout ce qu'ils font, résume très bien la difficulté de définir ce qu'est un continent, certaines approches possibles choisies par telle ou telle culture. Cette page Wikipédia est plus précise (quoique moins rigolote), mais finalement ne nous apprend pas grand-chose de plus.

Je dis telle ou telle culture, mais j'imagine qu'il y a un certain nombre d'endroits où une définition officielle d'un continent est nécessaire. Je pense à des organisations internationales qui ont une convention officielle ou semi-officielle que leur chef, ou le lieu des réunions, effectue une rotation entre les continents (divulgâchis : ces organisations ne considèrent sans doute pas l'Antarctique comme un continent !).

Je suis sûr qu'il y aurait moyen d'écrire un livre fort intéressant sur l'histoire des cinq continents, depuis les anciennes cartes en TO montrant l'Asie en haut, l'Europe en bas à gauche et l'Afrique en bas à droite, d'un œcoumène ayant la forme symbolique d'un T inscrit dans un O, jusqu'à la découverte de la tectonique des plaques[#2] et après. Comment l'Éducation nationale française (si c'est bien le cas) s'est-elle retrouvée[#3] à enseigner que l'Oural précisément[#4] marque la distinction entre l'Europe et l'Asie (quelle est la genèse de cette idée ?) et que l'Amérique du Nord et l'Amérique du Sud sont un seul et même continent (qui a décidé ça et quand et pourquoi ?), voilà toutes sortes de questions fascinantes, auxquelles je n'ai pas la réponse. Si un tel livre existait, je le lirais volontiers[#5].

[#2] En passant par le fait que Martin Waldseemüller ait été apparemment le premier, vers 1507, à publier une carte donnant un nom au Nouveau-Monde, choisi en l'honneur d'Amerigo Vespucci, l'adoubant de fait en nouveau continent.

[#3] Apparemment un des responsables dans l'histoire est Philip Johan von Strahlenberg vers 1730, et sa ligne de séparation Europe-Asie aurait été adoptée officiellement par la tsarine Anne. Voilà des bribes d'information que je trouve un peu au hasard d'Internet, mais qu'un tel livre pourrait expliquer de façon précise avec des sources fiables.

[#4] Au moins au nord. Parce que je me rappelle parfaitement qu'on m'a dit à l'école primaire que la plus haute montagne d'Europe était en France parce que c'est le Mont Blanc, cocorico🇫🇷, mais c'est un double mensonge parce que d'abord la France a volé le sommet du Mont Blanc en rectifiant unilatéralement des cartes pour que ce ne soit plus le point de passage de la frontière avec l'Italie, mais c'est une autre histoire, et d'autre part parce qu'il semble quand même (maintenant ?) assez universellement admis que le mont Elbrouz (en Russie, dans le Caucase) est en Europe.

[#5] Comme lecture connexe, mais qui existe vraiment, je peux mentionner le livre La Terre plate : Généalogie d'une idée fausse de Sylvie Nony et Violaine Giacomotto-Charra, que j'ai lu il n'y a pas longtemps, et qui raconte l'histoire du mythe non pas que la Terre est plate (pour ça je recommande les documentaires Behind the Curve et In Search of a Flat Earth) mais celui que que au Moyen-Âge, les gens croyaient que la terre était plate (ce qui est tout aussi faux, pour autant qu'on interprète les gens comme l'essentiel des lettrés et pas une poignée d'illuminés). Ce livre mentionne au passage des questions sur la forme de l'œcoumène (et le fait que la forme de l'œcoumène n'est pas forcément la même chose que la forme de la Terre, d'où la confusion !) et la possibilité de l'existence d'autres régions habitées de la Terre. Mais je digresse.

Mais mon but ici n'est pas seulement de parler des cinq continents ou de l'histoire de cette idée, parce que je n'ai pas de lumière particulière à apporter là-dessus. Je pense que tous les lecteurs de mon blog (qui ont notamment lu ce billet que je référence maintenant quasiment à chaque nouvelle entrée) ont le recul nécessaire pour bien comprendre (ce que la vidéo de Map Men explique très bien) que :

Les frontières entre les continents sont largement arbitraires et conventionnelles. Il peut y avoir des raisons géographiques (géophysiques, démographiques, géopolitiques, culturelles, que sais-je) ou historiques pour penser qu'il est préférable de séparer ou réunir tel ou tel bouts de terre, de placer la limite à tel ou tel endroit, mais in fine il n'y a pas plus d'autorité qu'une sorte de tradition arbitraire et même pas bien définie pour décider que la bonne liste des continents est ceci plutôt que cela.

Maintenant voici une question qui me semble plus intéressante : quand et comment doit-on enseigner ça à l'école ? (par ça je veux dire, le paragraphe que je viens de mettre en exergue).

Et je ne parle évidemment pas que du cas des cinq continents qui n'est là que pour servir d'illustration à une idée plus générale.

On apprend plein de choses à l'école. Certaines sont des vérités objectives[#6] sur le monde (qui peuvent elles-mêmes être établies avec plus ou moins de certitude). D'autres sont des conventions. Parmi ces conventions, certaines sont simplement là pour des raisons historiques, culturelles ou traditionnelles. D'autres sont plus ou moins justifiées, par exemple pour la commodité, pour le besoin d'avoir une typologie utile dans tel ou tel but (auquel cas elles sont discutables dans leur adéquation à ce but ; mais il peut y avoir toutes sortes de compromis qui président au choix de la convention ; et bien sûr le fait de se mettre d'accord sur un terme commun, même s'il est imparfait, peut avoir une valeur supérieure à trouver la typologie idéale dans chaque situation).

↑Entry #2781 [older| permalink|newer] / ↑Entrée #2781 [précédente| permalien|suivante] ↑

↓Entry #2780 [older| permalink|newer] / ↓Entrée #2780 [précédente| permalien|suivante] ↓

(jeudi)

Sur la notion d'« étendue » en optique et en géométrie

Je voudrais essayer de parler ici d'un concept de géométrie (euclidienne), notamment important pour son application en optique, que je trouve à la fois joli pourtant trop peu connu[#] : celui d'« étendue ». En gros, l'étendue est une façon de mesurer la taille d'un ensemble de droites (disons, dans l'espace) de la même manière que le volume est une façon de mesurer la taille d'un ensemble de points. Mais pour commencer, et pour expliquer une façon dont cette notion apparaît, je veux parler des unités et grandeurs lumineuses que sont le lumen, le lux, la candela et la candela par mètre carré, et le lien entre ces unités, et ce qu'elles nous disent. Parce que même le grand public commence à avoir entendu parler des lumens (c'est écrit sur toutes les boîtes d'ampoules, de nos jours), et peut-être de lux (pour le niveau d'éclairement d'une pièce), mais ne sait pas forcément la différence entre les deux (divulgâchis : un lux, c'est un lumen par mètre carré).

[#] À titre d'exemple, je n'en vois pas de trace dans les programmes de classes préparatoires scientifiques françaises, ce que je trouve un peu surprenant. Et ce n'est pas une évolution récente parce que je ne crois pas qu'on m'en ait parlé quand j'étais moi-même en prépa.

La difficulté de l'exercice, c'est que comme je veux parler de divers concepts (l'étendue en géométrie euclidienne, l'étendue en optique géométrique, les unités de mesure photométriques, et quelques conséquences de tout ça) et ce à différents niveaux de vulgarisation, je mais certainement faire de la bouillie. En plus de ça, je suis infoutu de faire le moindre dessin, ce qui n'aide pas pour expliquer un concept éminemment géométrique.

Mais voilà, essayons quand même (bear with me), parce cette histoire de conservation de l'étendue est quelque chose qui me semble important pour comprendre les bases de l'optique, et c'est aussi un concept mathématique pas compliqué mais néanmoins digne d'être noté. Et j'en ai marre de toujours oublier ces choses, alors ce billet de blog est surtout un aide-mémoire pour moi-même.

*

☞ La « luminosité » décroît-elle avec la distance ? (Oui et non.)

Pour commencer, une observation toute simple qui me fascine depuis que je suis petit, qui n'est pas difficile à comprendre, et qui renferme l'essence de cette notion de conservation de l'étendue.

Considérez le Soleil, vu depuis la Terre, en plein jour (et par beau temps). Ne le regardez surtout pas directement, c'est très dangereux pour vos yeux (Newton a failli se rendre aveugle comme ça). Oui mais pourquoi est-ce si dangereux, au juste ? Parce que le Soleil est très brillant, bien sûr. Certes, mais il est aussi très loin : est-ce que la luminosité ne s'atténue pas avec la distance ? Après tout, l'étoile Sirius (enfin, Sirius A), qui est 23 fois plus lumineux que le Soleil mais 540 000 fois plus loin de nous, ne nous aveugle pas quand nous la regardons directement. Alors, oui et non : ça dépend surtout de ce qu'on appelle luminosité.

D'abord, il y a une absorption de la lumière par l'atmosphère terrestre, qui atténue surtout le bleu et l'ultra-violet. C'est important pour rendre le Soleil moins dangereux pour nous, mais ce n'est pas de ça que je veux parler, donc faisons comme si elle n'existait pas. Ensuite, il y a effectivement une décroissance de la luminosité avec la distance (quadratique : si on est 2 fois plus loin d'une étoile, elle apparaît 4 fois moins lumineuse), mais cette décroissance correspond précisément à une décroissance de la taille apparente (ou « angle solide ») de l'étoile : si on va 2 fois plus loin du Soleil, il apparaîtra 2 fois plus petit dans chaque direction, donc 4 fois plus petit en surface apparente (« angle solide »), et sa luminosité sera 4 fois plus faible juste pour cette raison, c'est-à-dire que la luminosité par unité d'angle solide (ou luminance) sera la même.

Quand l'objet qu'on regarde est suffisamment petit pour qu'il n'en reste qu'un seul point (on dit qu'il n'est pas « résolu optiquement »), on ne voit plus l'angle solide, et tout ce qui compte est la luminosité totale qu'on en reçoit[#2] (dont je vais dire qu'elle s'appelle correctement éclairement et se mesure en lux) ; mais si l'objet est de taille visible, ce qui est le cas du Soleil, alors ce qui compte est cette luminosité par angle solide (appelée luminance, et mesurée en lux par stéradian, ou ce qui revient au même, en candelas par mètre carré), et elle ne change pas avec la distance.

[#2] Je ne sais pas si je l'ai déjà raconté ici, mais depuis que je suis petit, quand je suis passager dans une voiture la nuit, j'aime parfois jouer à retirer mes lunettes. Comme je suis très très myope, chaque feu de véhicule devient alors une grosse tache (en gros l'image de mon cristallin qui, vu que c'est la nuit, est bien ouvert) : c'est très joli et assez poétique, ça fait une sorte de ballet hypnotisant de taches de couleurs rouges, orange et blanches. Ce qui est perturbant, c'est que la taille de ces taches ne change pas quand le véhicule s'éloigne, puisqu'elle est avant tout due à l'imperfection optique de mon œil : l'éloignement se manifeste non pas par une diminution de la taille mais par une diminution de la luminosité de la tache. C'est ce que j'appelle une situation non résolue optiquement. C'est pareil pour n'importe qui quand on regarde une étoile, mais dans mon cas les taches sont vraiment très grosses (d'ailleurs, du coup, sans mes lunettes, je ne peux absolument pas voir la moindre étoile).

En bref, si vous étiez deux fois plus loin du Soleil, ce serait tout aussi dangereux pour vos yeux de le regarder directement et fixement : la surface de la rétine qui se ferait endommager serait plus petite, mais la surface qui serait endommagée le serait tout autant. (Bon, il y a plein de petits caractères à ajouter là : par exemple pour rappeler que je parle de regarder fixement pendant une certaine durée, parce que les yeux bougent toujours un peu tout le temps, ce qui aide justement à nous protéger contre le soleil.)

Inversement, en principe, même si vous étiez à cent mètres de la surface du Soleil, cette surface vous apparaîtrait aussi brillante (absorption atmosphérique mise à part) que ce que vous en voyez depuis la Terre — c'est juste que ça occuperait la moitié de votre champ visuel au lieu d'être un tout petit truc (de 68 microstéradians) dans le ciel. (Bon, bien sûr, à 100m du Soleil vous auriez plein de problèmes, et je déconseille très fortement d'y aller.)

Et ça, quand j'étais petit, ça me fascinait profondément, de me dire que nous voyons le Soleil vraiment lumineux comme il est, juste plus petit.

*

☞ Flux lumineux, éclairement, intensité lumineuse, et luminance

Bon, mais dans tout ça j'ai utilisé le terme de luminosité de façon très vague. Essayons d'être plus clair, en distinguant quatre notions, et en expliquant comment elles se relient et quelles sont les unités qui les mesurent (si vous trouvez ça trop verbeux, j'ai mis un résumé à la fin) :

  • La première, c'est la notion de flux lumineux, qui est mesuré en lumens (symbole : lm) dans le Système International. C'est analogue à la puissance lumineuse, c'est-à-dire la quantité d'énergie par unité de temps : donc c'est analogue à des watts (symbole : W).

    Je dis analogue, parce qu'un lumen n'est pas un watt : le lumen reflète le fait que notre œil est plus ou moins sensible à différentes parties du spectre électromagnétique, donc qu'on ne voit pas 1W dans le vert autant que 1W dans le rouge ou le bleu, et si c'est 1W dans l'ultraviolet ou l'infrarouge on ne le voit pas du tout : donc le lumen tient compte de cette différence de sensibilité en pondérant la puissance des différentes longueurs d'onde en fonction de la sensibilité de l'œil humain (mais à cette pondération près, c'est comme des watts).

↑Entry #2780 [older| permalink|newer] / ↑Entrée #2780 [précédente| permalien|suivante] ↑

↓Entry #2779 [older| permalink|newer] / ↓Entrée #2779 [précédente| permalien|suivante] ↓

(lundi)

Méditation la complexité des conjugaisons françaises et inflexions linguistiques en général

Avertissement préliminaire : je vais faire référence dans ce billet à plein de langues (français, latin, grec, mais aussi allemand, russe, sanskrit, arabe). Ces langues ne servent qu'à illustrer mon propos général sur la complexité des inflexions, et il va de soi que je ne suppose pas qu'on les connaît (moi-même, je n'y connais pas grand-chose), et je ne vais généralement même pas m'embêter à donner le sens des mots que j'utilise comme exemples parce que ça n'a aucune pertinence pour ce que je raconte. De même, il faut considérer les noms des traits grammaticaux comme des mots dénués de sens : peu importe ce qu'est que l'aoriste à part que c'est un temps de la conjugaison des verbes grecs. (Prenez ça comme un mot à la fois technique et poétique : cf. d'ailleurs ce vieux fragment littéraire que je ne peux pas ne pas référencer ici.) J'ai aussi fait quantité de digressions marquées par des notes en petits caractères : on peut les sauter, ou au contraire ne lire que ça, de toute façon tout ceci est un rant un peu décousu, ce n'est pas comme s'il y avait un plan ou des dépendances entre les parties.

Comme le terme linguistique de paradigme inflexionnel n'est pas forcément clair pour tout le monde (je ne suis même pas sûr que ce soit le bon), ce dont je parle est l'ensemble des formes que peut prendre un même mot (ou plus exactement un même lexème) à travers l'application de différents traits grammaticaux. Comme cette définition n'est elle-même pas forcément claire pour tout le monde, un exemple familier pour tous les francophones est celui des tableaux de conjugaison, par lesquels un même verbe (lexème verbal), représenté par sa forme de dictionnaire qui, s'agissant du français, est l'infinitif, prend des formes (inflexions) diverses selon des traits grammaticaux appelés mode, temps et personne (ou nombre+personne). Les conjugaisons latines et grecques sont aussi des paradigmes inflexionnels, avec à peu près les mêmes traits que pour le français (la liste des modes et temps change, et le grec classique a un nombre duel, mais l'idée est la même ; une autre différence est que pour ces langues la forme du dictionnaire, c'est-à-dire la manière dont on va ranger le verbe dans un dictionnaire, est la première personne du singulier de l'indicatif présent au lieu d'être l'infinitif, mais c'est un détail). Un autre exemple est celui des tableaux de déclinaisons latines ou grecques[#], qui pour un même nom (lexème nominal, dont la forme de dictionnaire est le nominatif singulier) donnent des formes variées en fonction de deux traits appelés nombre et cas, ou, s'agissant des adjectifs, trois traits appelés genre, nombre et cas.

[#] Ou bien sûr de plein d'autres langues. Mais attention, une langue peut avoir des cas sans pour autant avoir vraiment de déclinaisons. En allemand, par exemple, les déclinaisons portées par les noms sont quasiment vestigiales (à part la marque du pluriel, pour la plupart des mots il ne subsiste qu'un -n au datif pluriel et, s'agissant des féminins et neutres, un -s au génitif singulier ; ou pour les noms dits faibles, la déclinaison est essentiellement juste marquée par un -n partout). La marque des cas en allemand est essentiellement sur les articles ou adjectifs (avec des règles un peu tordues sur ces derniers), et comme je ne crois pas qu'il existe d'adjectif irrégulier, ce n'est pas vraiment le genre d'inflexion dont je parle dans ce billet.

Conjugaison des verbes et déclinaison des noms et adjectifs sont les paradigmes inflexionnels les plus familiers aux personnes qui auront appris des langues comme le français, le latin, le grec classique, le sanskrit ou l'arabe. Mais il peut évidemment y avoir plein d'autres choses : on peut tout à fait imaginer une langue où les adverbes varient (par exemple qu'ils s'« accordent » avec le verbe comme les adjectifs s'accordent avec les noms dans les langues que je viens de lister) ; en japonais, on peut dire que les adjectifs (enfin, certaines sortes de mots qu'on pourrait qualifier d'adjectifs) varient avec le temps ; et la division des mots en verbes, noms, adjectifs, etc., est valable pour les langues indo-européennes et sémitiques mais pas forcément transportable partout. Bref, j'utilise le terme paradigme inflexionnel pour être plus large que tableaux de conjugaison et de déclinaison, mais comme je n'ai pas de bon exemple à proposer au-delà de la conjugaison et de la déclinaison, imaginez les conjugaisons et les déclinaisons si vous êtes familiers avec ça (ou d'ailleurs, juste les conjugaisons parce que je vais surtout parler de ça).

Toutes les langues n'ont pas de mécanisme inflexionnel. Si le grec classique, le russe et l'arabe en ont de fort complexes, le chinois n'en a aucun[#2] (tous les mots chinois sont invariables), et ceux de l'anglais sont considérablement plus simples que ceux du français. Les langues scandinaves font varier le verbe avec le temps/mode mais pas avec la personne, ce qui fait déjà moins de traits que le français ou l'allemand.

[#2] Bon, quand on parle de linguistique, il faut toujours ajouter des on peut considérer que ou des en première approximation partout. Je suis sûr que si je ne mettais pas cette note il y aurait un gros malin pour me dire que well, actually, on peut considérer que <…> est un mécanisme inflexionnel en chinois : donc je mets cette note pour cette fois-ci, mais n'hésitez pas à l'insérer dans la suite à chaque fois que quelqu'un risque de dire well, actually.

Bien sûr, ce n'est pas toujours parfaitement clair ce qui constitue exactement les inflexions d'un même lexème (pourquoi dirait-on que le passage du singulier possible au pluriel possibles est une inflexion alors que le passage de possible à impossible est une dérivation lexicale ? c'est un chouïa arbitraire[#3][#4]), mais comme d'hab' je vais rappeler que ce n'est pas parce que ce n'est pas totalement clair que ça n'a pas de sens.

[#3] Un exemple d'arbitraire est celui des aspects du verbe russe : un verbe russe (comme dans l'essentiel des autres langues slaves, mais le russe est le seul que je connais un petit peu) vient par paires avec une forme, ou aspect, appelée perfectif et une autre appelée imperfectif. Certains temps peuvent être utilisés sur l'un ou l'autre aspect, avec une différence de sens (le perfectif envisage l'action accomplie, ou son résultat, tandis que l'imperfectif envisage l'action en train d'être accomplie, c'est-à-dire son déroulement) ; certains temps sont formellement le même aux deux aspects mais donnent des temps différents (la forme qui donne le présent de l'aspect imperfectif devient un futur pour l'aspect perfectif) ; certains temps n'existent que pour un des deux aspects. Doit-on considérer que le perfectif et l'imperfectif sont deux formes d'un même verbe, comme le singulier et le futur d'un nom ? Ou doit-on au contraire considérer que ce sont deux verbes différents, qui se complètent ? Je suppose que des grammairiens du russe ont passé des pages et des pages à expliquer que l'un ou l'autre de ces points de vue est meilleur que l'autre, et je ne suis pas compétent pour trancher, comme pour le sexe des anges. Pour que je veux raconter ici, il vaut sans doute mieux considérer pragmatiquement que le perfectif et l'imperfectif sont deux verbes distincts, parce qu'essayer de deviner le perfectif à partir de l'imperfectif ou vice versa semble essentiellement impossible (d'ailleurs, pour les verbes « simples » c'est plutôt le perfectif qui dérive de l'imperfectif alors que pour les verbes à préfixe c'est plutôt le contraire). Mais en tout cas, ça montre une difficulté à définir exactement ce qu'on appelle un paradigme inflexionnel.

[#4] Un autre exemple d'incertitude sur ce que c'est qu'un « lexème » et un « paradigme » est celui des formes dérivées des verbes arabes. Un verbe arabe est normalement une racine à trois consonnes, et cette racine, connue sous le nom de forme I, peut directement donner un tableau de conjugaison, qui est d'une taille relativement raisonnable (il y a moins de temps et modes qu'en français ou en latin, pour ne rien dire du grec, mais en contrepartie il y a plus de personnes parce que la distinction masculin/féminin est faite en plus de celle de nombre à la 2e et 3e personnes). La complication, c'est que chaque racine peut donner une douzaine ou une quinzaine de formes dérivées (formes II à XV, parfois on en ajoute encore d'autres, même si en vrai les formes I–X et peut-être XII sont les seules vaguement courantes) : le sens de ces formes dérivés est variable et elles n'existent pas toutes, mais leur fabrication à partir de la racine est assez systématique, et ensuite chacune d'entre elles est un verbe qui a son propre tableau de conjugaison. Faut-il considérer qu'un paradigme flexionnel de verbe arabe est l'ensemble de toutes les conjugaisons de toutes les formes dérivées (auquel cas ils sont très volumineux) ? Ou seulement d'une seule d'entre elles (auquel cas ils sont plus raisonnables, mais il y a une multiplication des types de conjugaisons) ? C'est un peu le problème dual du russe évoqué à la note précédente : le perfectif/imperfectif des verbes russes ont un sens fixe mais une formation qui dépend de chaque verbe, alors que les formes dérivées des verbes arabes ont une formation claire mais un sens qui varie.

Quand je parle de complexité, ce qui compte n'est pas tellement le nombre de traits grammaticaux qu'on peut ajouter. Une langue qui aurait des déclinaisons avec 50 cas bien réguliers serait toujours plus simple à apprendre qu'une langue qui a seulement 3 cas mais avec des centaines de paradigmes différents pour les former, des exceptions de partout, etc. C'est essentiellement de cette complexité que je veux parler ici. (Je proposerai à la fin une piste pour essayer de la définir de façon un peu objective et pas juste par l'impression subjective de la difficulté à apprendre la langue ou à mémoriser ces tableaux, mais je commence par des remarques un peu éparses.)

Je ne m'intéresse pas du tout au sens des traits grammaticaux. Comme je l'ai écrit dans l'avertissement liminaire, pour ce que je raconte ici, peu importe ce que c'est qu'un cas, ou ce que signifient le nominatif, l'accusatif, le génitif ou le trucbidulatif, peu importent que les temps du verbe s'appellent présent, passé et futur ou des choses plus bizarres comme aoriste ou prétérit, peu importe que parfait et inchoatif soient des temps ou des aspects, tout ça est hors de propos ici : ce sont juste des étiquettes arbitraires que la grammaire utilise pour décrire des façons de modifier un lexème. Je parle juste de la complexité de répondre à des questions du genre[#5] :

  • En français, quelle est la 3e personne du singulier de l'indicatif présent des verbes coudre et résoudre ? (Réponses : il coud et il résout.)
  • En latin, quel est l'ablatif singulier du nom animal ? (Réponse : animali.)
  • En grec classique, quelle est la 1re personne du pluriel de l'optatif futur moyen du verbe βάλλω ? (Réponse : βαλοίμεθα.)
  • En russe, quel est l'instrumental du nombre со́рок [sórok] ? (Réponse : сорока́ [soroká].)
  • En irlandais, quel est le génitif singulier du nom féminin an talamh ? (Réponse : na talún.)
  • En sanskrit classique, quelle est la 2e personne du singulier de l'impératif (présent) actif du verbe द्विष् [dviṣ] ? (Réponse : द्विड्ढि [dviḍḍhi].)
  • En arabe classique, quelle est la 3e personne du singulier masculin de l'inaccompli actif du verbe وَفَى [wafá] ? (Réponse : يَفِي [yafī].)

[#5] À part l'arabe, toutes mes langues sont indo-européennes : c'est essentiellement juste un biais de ma part, même s'il semble quand meme plausible que les langues indo-européennes aient tendance à avoir une complexité inflexionnelle plutôt plus importante que la moyenne (si tant est que « la moyenne » ait un sens). Encore une fois, ça ne veut pas forcément dire qu'elles aient beaucoup de formes, plutôt beaucoup d'irrégularités : les inflexions du turc, de ce que je comprends, sont globalement très régulières, donc plutôt plus simples que celles des langues indo-européennes typiques. Bien sûr, quand je dis plutôt plus complexes que la moyenne, ça ne veut pas dire que ce soit le maximum, loin de là : les gens ayant tenté d'apprendre le géorgien doivent certainement rigoler que je décrive les conjugaisons du grec ancien comme compliquées.

Pas sûr que mes réponses ci-dessus soient correctes, mais ça fait justement partie de ce dont je veux parler : quelles sources consulter pour trouver les bonnes réponses ?

↑Entry #2779 [older| permalink|newer] / ↑Entrée #2779 [précédente| permalien|suivante] ↑

↓Entry #2778 [older| permalink|newer] / ↓Entrée #2778 [précédente| permalien|suivante] ↓

(dimanche)

Réflexions à 2 femtozorkmids sur l'informatique en tant que science

Les quelques derniers billets de ce blog qui avaient un contenu scientifique (notamment celui-ci et celui-ci) tournaient autour de l'informatique théorique. (Et je compte en écrire encore plusieurs.) Je ne sais pas si le lecteur non spécialiste aura vu la différence avec des maths. Je ne sais pas si je vois une différence avec des maths. Après tout, j'ai rangé ces billets dans la catégorique « maths » (pas que le mécanisme de catégories sur ce blog serve à quoi que ce soit, et c'est peut-être surtout que j'avais la flemme de créer une nouvelle catégorie, mais quand même, c'est une info) ; alors que par le passé, j'ai écrit des entrées sur la physique théorique (comme celle-ci ou celle-là) et je les ai rangées dans une catégorie différente. Peut-être même qu'avec assez de mauvaise foi on pourrait prétendre que la correspondance de Curry-Howard affirme qu'il n'y a pas de différence entre maths et info (mais soyons clairs, ça demande une bonne dose de mauvaise foi, justement).

Ce n'est pas la première fois que je médite sur cette question à laquelle je n'ai pas vraiment de réponse : qu'est-ce que c'est que l'informatique ? — et secondairement, quelle position a-t-elle par rapport aux maths ? et cette position est-elle analogue à celle de la physique ?

(Je précise que ce billet, qui est une méditation décousue et sans véritable point d'arrivée, se veut non-technique, i.e., lisible par tout le monde, mais que fatalement je vais être amené à faire des remarques techniques çà et là : si on ne sait pas de quoi je parle, on peut juste ignorer ces passages, ils ne sont là que pour appuyer ou illustrer mes propos, ils n'en sont pas le cœur. Si vous n'avez vraiment pas le temps de lire, regardez au moins le dernier paragraphe pour un résumé de ce que j'essaie de dire.)

☞ Science informatique et génie informatique

Mettons-nous d'accord sur le fait que je parle de l'informatique en tant que science : computer science en anglais, par opposition à computer engineering, ce dernier étant le génie informatique (lui-même au sens d'ingénierie, pas au sens du fait d'être génial…), comme on peut parler de la physique comme science par opposition au génie mécanique / électrique / électronique / etc. Mais la frontière entre la science et le génie n'est pas super claire non plus, et peut-être que ça fait aussi partie de la question : en première approximation, une science est une discipline qui cherche à élargir nos connaissances tandis que le génie cherche à appliquer des connaissances pour résoudre des problèmes, mais évidemment ce n'est pas toujours net, et il y a des sciences appliquées (que je range quand même parmi les sciences) qui montrent que la limite est assez floue.

Néanmoins, j'aime bien souligner que ce n'est pas parce qu'une limite est floue qu'elle n'existe pas : entre l'étude des modèles du λ-calcul et l'optimisation d'un jeu vidéo il y a bien une différence d'approche, ce qui se mesure ne serait-ce qu'empiriquement au modèle économique qui paye les gens qui font l'une et l'autre activité, et il me semble que cette différence est assez analogue à celle entre, pour ce qui est de la physique, l'étude de la théorie des solutions exactes de l'équation d'Einstein et l'optimisation d'un moteur de moto. (Et je devance l'accusation qu'il y aurait là un jugement de valeur de ma part : d'une part je mets ma vie entre les mains des gens de chez Yamaha qui conçoivent des moteurs de moto, d'autre part j'avoue platement que programmer un jeu vidéo ou concevoir un moteur de moto est quelque chose qui me semble complètement hors de mes capacités à la différence de l'étude des solutions exactes des équations d'Einstein ou des modèles du λ-calcul, que j'ai au moins pratiquées de loin.)

Alors maintenant, si la physique est l'étude du monde matériel, ou quelque chose qui y ressemble, l'informatique, c'est quoi ?

☞ L'informatique n'est pas la science des ordinateurs

La réponse la plus évidente serait que c'est la science des ordinateurs. À ça il faut répondre par une citation souvent attribuée à Dijkstra, mais comme toutes les meilleures citations sont apocryphes, elle n'est probablement pas de lui :

Computer science is no more about computers than astronomy is about telescopes.

Les ordinateurs ne sont que le moyen d'étude de l'informatique, en même temps que son application : ils ne sont pas son objet.

Le grand public a peut-être dans l'idée qu'un chercheur en informatique cherche à rendre les ordinateurs plus rapides. (Bon, à vrai dire, le grand public a peut-être dans l'idée qu'un chercheur en informatique est un pro en Excel ou sait réparer une imprimante qui dysfonctionne, et ce sont des idées à ranger avec celle du mathématicien comme quelqu'un qui passe ses journées à faire des calculs immensément compliqués : juste naïves, mais révélatrices d'un triste manque d'information sur le fonctionnement de la science.) Ce n'est pas complètement faux, bien sûr, il y a des informaticiens qui cherchent effectivement à rendre les ordinateurs plus rapides. D'autres qui cherchent à les rendre plus sûrs. Mais ce sont un peu les arbres qui cachent la forêt.

Bon, mais alors c'est quoi, l'objet de l'informatique, si ce n'est pas les ordinateurs ?

À vrai dire je ne sais pas bien quoi répondre. Ma première approximation de la réponse (peut-être désespérément vague) serait : l'informatique est la science de l'information, des données, de la communication, de l'automatisation et du calcul.

☞ La physique et l'informatique vis-à-vis des maths

L'ennui, si on dit ça, c'est que ça ressemble beaucoup à des maths. Bon, à ce stade, il faut peut-être aussi que je tente de définir les maths, et je suis tout autant embarrassé : c'est essentiellement aussi naïf de s'imaginer que les maths sont la science des nombres que que l'informatique est celle des ordinateurs, mais là aussi, on est en droit de se demander de quoi elles sont l'étude, alors. Je dirais bien l'étude des structures abstraites, mais on m'objectera que ça ressemble trop à la philosophie, ça. En tout cas, l'information, les données, la communication, l'automatisation et le calcul, ça ressemble beaucoup à des notions abstraites que les maths pourraient étudier. Et de fait, il y a une intersection énorme entre les maths et l'informatique théorique ; mais intersection ne signifie pas inclusion c'est un peu le cœur de mon propos.

Peut-être parce qu'elle est née plus récemment que la physique, l'informatique semble avoir une crise identitaire vis-à-vis des mathématiques un peu plus compliquée que celle de la physique. Crise identitaire qui peut signifier qu'elle tarde à prendre son indépendance, ou au contraire prendre la forme d'une volonté excessive de « tuer le père ».

Je pense qu'informatique et physique occupent une place relativement analogue (voire, symétrique) par rapport aux mathématiques. Les deux sont à la fois une inspiration pour les mathématiques et un domaine d'application de celles-ci, et, dans leur partie la plus théorique, elles intersectent largement les maths. (Elles ont aussi, dans leur incarnation moderne, émergé des mathématiques : Turing était mathématicien au moins autant qu'informaticien, comme Newton était mathématicien au moins autant que physicien.) Les maths qui intéressent l'informatique (par exemple la logique et l'algèbre discrète) et les maths qui intéressent la physique (par exemple la géométrie différentielle et la théorie des groupes continus) sont généralement distinctes, mais il y a de grands domaines qui intéressent les deux (comme l'analyse de Fourier ou les probabilités).

☞ Une digression sur mon papa physicien

Je devrais peut-être faire une digression à ce sujet pour parler de mon papa, qui était physicien théoricien, et faisait de la physique qui pourrait franchement être considérée comme des maths (genre, ça), mais qui avait une relation difficile avec les maths et les mathématiciens (il aimait bien citer Feynman qui comparait la rigueur mathématique à la rigor mortis ; il faudrait que je vérifie si elle n'est pas apocryphe aussi celle-là, mais en tout cas ça montre que si son sujet d'étude était très mathématique, son approche n'était pas vraiment celle d'un mathématicien).

Mon papa était en outre persuadé que la physique était la source d'inspiration des maths, et que toutes les idées mathématiques naissaient soient de la recherche d'applications à la physique soit de généralisations assez évidentes de ça. J'aurais dû lui rétorquer plein de choses quand il me disait ça (par exemple, parmi les choses qu'il aurait dû bien savoir en tant que relativiste, que la géométrie riemannienne était là bien avant qu'Einstein n'en ait besoin pour décrire un espace-temps courbe), mais je pense qu'il reflétait là surtout son propre biais d'intérêt dans les domaines qu'il connaissait des mathématiques (à chaque fois que je lui ai parlé de corps de caractéristique p>0, par exemple, il haussait les yeux au ciel comme si c'était vraiment une lubie saugrenue d'étudier des choses aussi déconnectées du monde réel dans lesquelles en ajoutant p fois le nombre 1 on retombe sur 0). C'est intéressant, donc, parce que mon père ne semblait pas du tout avoir considéré cette possibilité que l'informatique soit, de façon analogue à la physique, elle aussi une source féconde d'inspiration en même temps que de débouchés pour les maths. Mais c'est aussi intéressant parce que sa relation compliquée avec les maths, qui dans son cas était plutôt idiosyncratique, est quelque chose que je crois retrouver de façon collective dans des tentatives de trouver un démarquage entre les maths et l'info pour des disciplines qui sont à cheval entre les deux.

☞ L'enseignement de l'informatique comme science

Il me faut sans doute d'abord dire un mot de l'enseignement. Ne sachant pas comment ça se passe ailleurs, je vais évoquer le cas de la France.

Malgré N timides tentatives par le passé, n'ayant jamais vraiment abouti, ce n'est que tout récemment (~2018, peut-être ?) que l'enseignement secondaire français s'est doté, sous le nom de numérique et sciences informatiques (NSI), d'un véritable enseignement (optionnel…) de l'informatique. (Cela me semble impossiblement tardif, mais je crois qu'il vaut mieux que je ne regarde pas à quel moment historique on a commencé à enseigner la physique dans les lycées français, parce que j'ai peur de faire une attaque.) N'ayant pas de contact direct avec le monde de l'enseignement secondaire, je ne peux juger que par les programmes, qui sont un peu bizarres (p.ex., l'enseignement du SQL me semble vraiment bizarrement précis à côté de généralités très vagues sur d'autres plans) mais néanmoins intéressants par certains côtés. Donc je ne vais pas en dire plus.

☞ La génération Z et l'informatique

Même si ce n'est que tangentiel à mon propos, comme c'est quelque chose qui revient régulièrement si on évoque la nécessité de l'enseignement de l'informatique au lycée, il faut que je dénonce un lieu commun, qui dit quelque chose comme ceci :

❝Les jeunes, de nos jours, ils n'ont pas besoin qu'on leur enseigne l'informatique, parce qu'ils ont grandi avec les ordinateurs. D'ailleurs, ils en savent certainement plus que leurs profs de lycée.❞

Il y a tellement de choses fausses là-dedans que je ne sais pas bien par où commencer. Par le fait que l'informatique n'est pas la science des ordinateurs ? Je l'ai déjà signalé. Mais je pourrais aussi remarquer le ridicule de l'idée analogue que parce qu'on a tous grandi avec les voitures thermiques on saurait expliquer comment fonctionne un moteur à explosion[#].

[#] Je serais d'ailleurs sincèrement curieux de savoir quelle proportion de la population prise au hasard dans la rue serait capable d'expliquer approximativement le principe d'un moteur à explosion (disons par exemple, de nommer les quatre phases du cycle d'un moteur à quatre temps). Mais j'ai déjà souligné l'incongruité du fait que ce genre de connaissances ne soient pas considérées comme faisant partie de la culture générale.

Un autre problème avec ce cliché est que, en fait, la génération qui a grandi avec les ordinateurs, c'est plutôt la mienne et la suivante ; la génération de ceux nés au XXIe siècle, ils ont grandi avec des smartphones (et autres interfaces graphiques complètes), et c'est bien différent. Or les interfaces graphiques comme celles des smartphones, comme leur but était de mettre l'outil entre les mains de tout le monde en évitant que Monsieur Toutlemonde ait à connaître quoi que ce soit du fonctionnement interne de la machine, elles ont tout fait pour cacher (dans des skeuomorphes plus ou moins heureux) la moindre chose qui ressemble à de la programmation. En même temps que le monde informatique derrière est devenu de plus en plus compliqué par l'empilement de couches séparant l'utilisateur du matériel (et ceci vaut aussi pour les vrais PC, pas seulement pour les smartphones), l'accès de l'utilisateur à ces couches et devenu de plus en plus compliqué.

Donc je ne pense pas du tout qu'un jeune né en 2000–2010 soit automatiquement doué pour la programmation, encore moins pour comprendre la notion abstraite de machine de Turing, pas plus que quelqu'un qui a grandi avec les voitures modernes — par opposition à la Ford modèle T — est automatiquement doué pour la mécanique auto, encore moins pour expliquer la thermodynamique du cycle d'Otto.

(Loin de moi l'idée de faire mon vieux con en mode c'était mieux âââvant, hein ! Je n'ai rien contre les interfaces graphiques pas plus que je n'en ai contre les voitures modernes. Si on n'est pas obligé de taper mkdir pour créer un répertoire, c'est très bien. Le problème c'est plutôt quand on ne peut même pas taper mkdir pour créer un répertoire. Je ne suis pas non plus en train de reprocher à la génération Z de ne rien savoir faire en-dehors de se servir de leur smartphone — autre cliché à la con que je déteste : je dis juste qu'il ne faut pas automatiquement supposer que grandir avec un smartphone rend ipso facto compétent pour se servir d'un ordinateur, encore moins pour comprendre le fonctionnement d'un ordinateur ou la théorie derrière.)

☞ L'informatique en prépa et à l'agreg

S'agissant de la formation des futurs ingénieurs (i.e., post-baccalauréat), les classes préparatoires scientifiques françaises ont tout récemment (à la rentrée 2022) vu la création d'une filière MPI (pour maths, physique, informatique), qui ouvre un véritablement enseignement de l'informatique en tant que science en classes prépa, à côté des filières MP (maths-physique) et PC (physique-chimie). Un de mes collègues a d'ailleurs participé à l'écriture des programmes de cette filière (du coup, la partie sur les automates finis est fortement inspirée d'un cours que je donnais sur ce sujet à Télécom[#2] et dans lequel ce collègue intervenait). Je suis certainement favorable à cette évolution, et au fait que l'informatique soit traitée comme une vraie manière autonome et pas une sorte d'excroissance des maths ni une distraction proposée en marge des cours et visant uniquement les applications dans d'autres domaines. Pour autant, je pense qu'il faut aussi se méfier de la fausse impression que cela pourrait causer dans l'esprit des préparationnaires qui risquent de croire faussement que parce que c'est de l'informatique ce n'est pas des maths (cf. ce que je dis plus bas sur la grande intersection entre ces domaines) : ils risquent du coup de se construire une image mentale trop exiguë des mathématiques (limitée en gros à l'algèbre linéaire et à l'analyse classique, ce qu'on leur enseigner en cours de maths), alors qu'en fait de grands pans de ce programme informatique auraient très bien pu être enseignés dans un cours de maths.

[#2] Cours dont voici les notes et ici une vidéo des séances de 2020–2021. À ce sujet, en avril 2021 on m'a demandé d'assurer un cours sur le sujet destiné aux profs de prépa (et qui va donc un peu au-delà du programme). Mes slides sont ici, et les vidéos de l'exposé lui-même sont ici pour les 2h du matin et ici pour les 2h de l'après-midi.

Cette création d'une filière MPI en prépa scientifique fait suite de peu à la création d'une agrégation d'informatique (premier concours à l'été 2022). Auparavant, il y avait eu une option informatique à l'agreg de maths (option proposée à l'écrit entre ~1990 et ~1997 je crois, puis à l'oral entre ~2006 et 2022 ; entre les deux il n'y avait rien). Il y a certainement lieu de s'interroger sur la question de savoir s'il était idéal d'avoir une agreg complètement différente plutôt qu'une option, ou une solution intermédiaire (une question analogue se pose certainement aussi sur le rapport entre physique et chimie, ou entre biologie et géologie), ou d'ailleurs s'il était évident que la création d'une agreg d'informatique dût entraîner la suppression de l'option informatique de l'agreg de maths. (Bizarrement, en prépa, il continue à exister une option info en filière MP, qui est distincte de la filière MPI : c'est confusant, pas forcément super cohérent, et un peu compliqué à gérer en aval dans l'enseignement, mais je suis tenté de croire que cette multiplicité des choix a des vertus.)

Sans vouloir suggérer que c'est un mauvais choix scientifique ou pédagogique (au contraire), je pense que ces décisions relèvent largement d'une décision d'affirmer l'indépendance de l'informatique comme discipline scientifique à part entière, et de ne pas laisser l'idée que c'est une sorte d'appendice des mathématiques.

☞ Le problème des limites entre sciences

Au-delà de l'enseignement, parlons un peu de la science pour la science.

Les frontières entre disciplines sont, évidemment, un peu arbitraires. D'abord, je crois fermement à l'unité fondamentale de tous les domaines du savoir humain, c'est-à-dire au moins que je suis sûr qu'on peut passer de proche en proche de la théorie des cordes à la philologie grecque, ou de la biochimie à la musicologie, sans jamais rencontrer de barrière nette. Si cela peut paraître farfelue, je rappelle au passage qu'un concept très important de l'informatique théorique (à l'intersection avec les maths), la notion de grammaire hors contexte a été inventé par un linguiste[#3] (d'ailleurs peut-être plus connu pour son activisme politique), Noam Chomsky.

[#3] Je sais que l'importance de cette notion en linguistique (ou de façon générale toute la linguistique chomskienne, et la notion de grammaire universelle) est assez controversée. Je m'abstiens explicitement de me prononcer sur ces questions sur lesquelles je suis incompétent. Mais quoi qu'on en pense dans le cadre de la linguistique, en informatique théorique c'est une notion fondamentale.

Mais je ne veux pas tomber dans le sophisme des sorites que je ne cesse de dénoncer : ce n'est pas parce que la frontière est floue et/ou largement arbitraire qu'elle n'existe pas, ou qu'on n'a pas le droit de discuter le meilleur endroit où la faire passer.

Les limites administratives entre sciences causent toutes sortes de maux de tête, par exemple pour les candidats à un poste académique dont la spécialité est proche d'une de ces frontières arbitraires : a priori on pourrait imaginer que cela tourne à leur avantage (par exemple, quelqu'un qui fait quelque chose à cheval entre les maths et l'info pourrait candidater aussi bien en maths qu'en info), mais dans la réalité c'est presque toujours un handicap (il y aura toujours quelqu'un pour vous reprocher de faire des choses trop informatiques quand vous candidatez en maths et de faire des choses trop mathématiques quand vous candidatez en info, avec le prétexte que vous auriez dû candidater dans l'autre domaine ; je pense que ceci vaut à chaque fois qu'il y a une interface de ce genre : sur le papier tout le monde dit du bien de la transdisciplinarité, mais dans la réalité ça a tendance à nuire aux candidats de ne pas rentrer dans les bonnes petites cases). Mais ce n'est pas tellement de ça que je veux parler.

Donc, l'informatique fait-elle partie des mathématiques ? Une partie de l'informatique fait-elle partie des mathématiques ? Où est le meilleur endroit pour tracer la limite ?

↑Entry #2778 [older| permalink|newer] / ↑Entrée #2778 [précédente| permalien|suivante] ↑

↓Entry #2777 [older| permalink|newer] / ↓Entrée #2777 [précédente| permalien|suivante] ↓

(lundi)

J'essaie d'ajouter la possibilité de régler la taille du texte sur ce site

Un des principes complètement stupides et insupportables du Web (j'en parlais notamment dans ce billet il y a quelques mois) est que c'est l'auteur d'une page (ou site) Web qui choisit tous les détails de l'apparence de celle-ci. L'habitude qu'on a de ce principe peut faire oublier son absurdité, mais je ne sais vraiment pas quel sens ça peut avoir que ce soit moi, auteur de ce blog, qui décide la couleur de fond de la page, ou la police de caractère avec laquelle vous lisez ces mots : ces choix stylistiques m'ont surtout valu des critiques pour mes goûts de merde, mais c'est tout le principe qui est idiot — si on va critiquer ces choix, autant que ce soit le lecteur lui-même qui les fasse. Ce n'est pas à moi de décider quelle police vous semble la plus agréable pour lire du texte, ni la couleur qui offre le meilleur contraste, ni la taille qui convient le mieux à vos yeux peut-être myopes ou presbytes ou que sais-je encore : indépendamment du fait que j'ai (paraît-il) mauvais goût, je n'ai tout simplement pas les informations nécessaires pour prendre ces décisions.

Alors certes il y a des éléments d'apparence qu'il est normal que l'auteur du site choisisse. Par exemple si j'écris un texte sur les foobars et que j'avertis pour aider le lecteur à s'y retrouver, je vais indiquer les noms des foobars en les soulignant deux fois, en bleu pour les foobars bleutés et en rouge pour les foobars orangés, il faut que je puisse souligner deux fois et choisir la couleur. On comprend que ça puisse poser des problèmes d'interaction si le lecteur peut faire des choix d'apparence et que l'auteur peut en faire d'autres, et qu'il faut donc gérer des conflits éventuels ou des dépendances (du style : si le lecteur a choisi un thème sombre je vais plutôt utiliser un bleu et un rouge sombres, tandis que si le lecteur a choisi un thème clair je vais prendre des couleurs vives).

Reste que la situation actuelle, malgré de bonnes intentions de divers bouts des standards Web (comme CSS) laisse fort peu de pouvoirs entre les mains de l'utilisateur. (Enfin, en principe il a tous les pouvoirs : il peut ouvrir l'outil « inspecteur » de son navigateur et s'en servir pour modifier comme il veut la page qu'il consulte, ajouter des éléments de style, changer les tailles, les polices, etc., et d'ailleurs même le texte lui-même si ça lui chante. Mais en pratique, l'utilisateur moyen ne sait pas se servir de l'inspecteur de son navigateur, et même l'utilisateur expérimenté trouvera pénible de refaire ça à chaque visite, ou de devoir écrire un script Greasemonkey pour le faire automatiquement.)

La seule chose que les navigateurs Web ont fini par se décider à proposer de façon vraiment accessible, c'est un moyen de changer la taille en zoomant (ça se fait typiquement avec les touches contrôle-plus et contrôle-moins) ; Firefox propose même deux types de zoom : un zoom qui change texte et images, et un zoom qui ne change que le texte (mais comme le second — qui me semble préférable a priori — est peu utilisé donc mal testé, il souffre de divers problèmes et bugs, par exemple ça casse les capture d'écran). Pour une raison que je ne comprends pas du tout[#], cette fonction de zoom n'est pas proposée sous Firefox mobile (on peut certes zoomer par gestures sur l'écran, mais c'est un zoom qui ne réajuste pas la longueur des lignes à la taille de l'écran/fenêtre comme sur fixe ; tout est compliqué parce qu'il y a au moins trois types de zoom différents qu'on peut vouloir : cf. ce commentaire pour une explication plutôt correcte). Quoi qu'il en soit, ces mécanismes de zoom sont complètement spéciaux, c'est-à-dire qu'ils ne passent pas par le contrôle normal des déclarations de style CSS (ou alors ils interagissent bizarrement avec elles).

[#] Il faut dire aussi que je ne comprends pas grand-chose à la manière dont interagissent les différentes tailles dans un navigateur mobile : voir ce billet passé à ce sujet, à propos de l'ajout de la déclaration <meta content="width=device-width, initial-scale=1" name="viewport" /> à mon HTML dont j'avoue que je ne comprends pas vraiment ce qu'elle fait.

Il commence aussi à y avoir des mécanismes de sélection de thèmes sombre/clair, parce que beaucoup de gens veulent ça pour leur webapplications. Mais ça passe par un mécanisme ad hoc qui ne permet que de choisir un « thème » (voire un thème parmi deux) et certainement pas plein de propriétés orthogonales (police, taille du texte, longueur des lignes, couleurs). Donc un deuxième mécanisme de personnalisation différent, extrêmement limité dans sa portée.

Pour n'importe quoi d'autre que le zoom spécial proposé par le navigateur et la sélection d'un thème sombre/clair, le site Web doit proposer son propre mécanisme de personnalisation, et évidemment rien n'est standardisé pour aider à ce que l'utilisateur s'y retrouve facilement entre les sites ou puisse facilement faire les mêmes choix partout (ou au moins, soit sûr de ce que ces choix recouvrent). Il n'y a même pas de « pratiques recommandées » sur la manière de nommer les préférences, de les présenter à l'utilisateur, de les ordonner, ce genre de choses.

Bref, c'est le bordel.

Ces râleries générales étant dites, on m'a demandé (dans un commentaire posté sur le tout premier billet de ce blog, ce qui est raisonnable vu que je n'offre pas de moyen de faire un commentaire sur l'ensemble du site) de proposer un moyen de régler la taille du texte.

J'ai donc essayé (en m'inspirant du code qu'on m'a proposé, et en l'empirant à ma sauce) de faire quelque chose de ce genre. Forcément, ça passe par du JavaScript, mais comme ça ne rend pas le site inutilisable sans JavaScript (on ne verra juste pas cette fonction et tout marchera comme avant) ça me semble un usage parfaitement légitime de JavaScript. Pour les >99.9% d'utilisateurs qui ont JavaScript activé dans leur navigateur, vous devriez donc voir en bas de la page, juste au-dessus de la signature finale, des boutons permettant choisir la taille du texte que vous préférez. [Modification () : Pour éviter de trop encombrer l'espace, il faut d'abord cliquer sur le bouton ‘⚙’ pour faire apparaître les autres boutons.] Ce réglage est censé être persistant et s'appliquer à l'ensemble des pages de ce site (enfin, sauf quelques pages antédiluviennes qui sont dans un style complètement différent).

Reste que je ne suis pas très content de ce que j'ai fait, pour diverses raisons. Certaines raisons de mon mécontentement sont de la faute de mon incompétence, d'autres sont de la faute de choix (possiblement malheureux) que j'ai faits par le passé, d'autres sont la faute des technologies du Web, et encore d'autres je ne sais pas bien.

Les technologies Web c'est toujours le même truc : tous les chemins sont jonchés de petites crottes de ragondin, et à chaque fois qu'on veut faire un truc on n'arrête pas de marcher dessus. Il y a toujours plein de choses qui font presque ou à peu près ce qu'on veut, mais à chaque fois on découvre des limitations à la con qui empêchent de s'en servir comme on voudrait.

D'abord, il y a une question toute bête d'interface utilisateur ; sous quelle forme proposer à l'utilisateur de changer la taille du texte ? J'ai choisi de mettre ça en bas de la page, avec des boutons à cliquer pour choisir diverses tailles entre 8 pixels et 20 pixels (enfin, j'écris pixels mais il faut considérer que c'est une unité un peu arbitraire, notamment sur mobile, donc je montre un échantillon de chaque taille après le bouton). Je ne sais pas si cette interface est terrible : peut-être qu'un menu déroulant aurait été mieux ? Peut-être vaudrait-il mieux mettre ça en tête de page ? (Je n'aime pas trop l'idée de mettre en tête de page quelque chose qu'on ne va pas toucher souvent, mais d'un autre côté si on veut essayer plusieurs tailles et que c'est en fin de page, on risque de devoir rescroller jusqu'à la fin.) Bref, concevoir des interfaces utilisateurs est un métier, ce n'est pas le mien, je suis profondément incompétent là-dessus, et ça devrait faire partie des standards du Web, pas quelque chose qu'on me demande d'improviser.

D'ailleurs est-ce que j'aurais dû proposer une liste de tailles espacées logarithmiquement plutôt que linéairement ? Je n'en sais rien. Mais bon, ça je pense que ça n'a vraiment pas d'importance.

Question interface, il y a aussi le choix de la langue : j'ai mis le texte invitant à changer la taille (change site font size) en anglais, par simplicité, mais si j'avais été motivé au point de l'écrire en plusieurs langues, je ne sais pas très bien comment j'aurais dû choisir la langue (en fonction de la langue préférée du navigateur ? en fonction de la langue de la page où le choix s'insère ?).

Ensuite, il y a un problème de ce que signifie la taille par défaut : parce que avant de rajouter ce réglage, j'avais déjà fait un choix par défaut, à savoir une taille de 12px si la largeur de fenêtre est ≤640px, 14px si elle est ≤720px, et 16px au-delà (cf. ce billet passé). En fait, je ne sais même pas bien ce que la taille de fenêtre signifie exactement ici, mais ce choix par défaut est le résultat d'un compromis laborieux. (Si on met une seule taille, il est juste impossible d'avoir un truc utilisable à la fois sur un navigateur mobile et sur un fixe.) Du coup, si la taille par défaut dépend de la largeur, ce n'est pas clair comment je dois présenter à l'utilisateur le choix de revenir à la taille par défaut ! Ce n'est même pas très clair pour moi comment je peux, en JavaScript, lire la taille par défaut[#2]. Bon, bref, j'ai mis un bouton pour revenir au défaut (c'est-à-dire à la taille choisie en fonction de fenêtre), mais ça peut sembler confus d'avoir un bouton reset en plus du bouton de la même taille.

[#2] Oui, rien que lire la taille par défaut n'est pas évident : si j'ai du CSS qui dit quelque chose comme @media (max-width: 640px) { body { font-size: 12px; } } @media (min-width: 641px) and (max-width: 780px) { body { font-size: 14px; } } @media (min-width: 781px) { body { font-size: 16px; } et que je veux récupérer la valeur de font-size de l'élément body, ben… ça n'a pas l'air facile. L'idée naturelle serait d'appeler getComputedStyle(), mais il s'avère que quand Firefox est en mode zoom où il ne zoome que le texte (et pas les images), la valeur de font-size renvoyée par getComputedStyle() tient compte de ce zoom (alors que si on cherche à modifier la propriété, ben le zoom s'applique dessus, donc si on lit et qu'on réécrit ce n'est pas idempotent !). C'est vraiment l'exemple de petite crotte de ragondin qui parsème n'importe quelle tentative de faire n'importe quoi avec CSS et JavaScript.

Encore un autre problème est de savoir comment stocker la préférence de l'utilisateur. Il y a la possibilité de positionner un cookie pour ça : je n'aime pas trop les cookies, parce que d'abord c'est plein de bizarreries incompréhensibles (notamment qu'on reçoit la chaîne de tous les cookies positionnés et qu'il faut ensuite analyser soi-même), et puis il n'y a pas de raison que la préférence soit communiquée à mon serveur dans la requête HTTP (je n'ai pas à savoir quelles tailles mes utilisateurs ont choisies), ce qui serait le cas avec un cookie. Donc j'ai plutôt opté pour une variable en local storage, ce qui est plus propre et plus moderne, mais je ne sais pas si j'ai bien fait (ça peut passer pour un cookie « sous le radar », et des gens n'aiment pas).

Il y a un point sur lequel je me suis moi-même un peu tiré une balle dans le pied, c'est que le JavaScript de ce site (comme le CSS) n'est pas inclus par référence, depuis un fichier JavaScript qui serait chargé en plus du HTML, il est incorporé directement dans le HTML. (Ma motivation était que j'aime que les fichiers HTML soient autonomes : on peut prendre le HTML d'un billet de mon blog et, tant qu'il n'y a pas d'images dedans, le sauvegarder dans un fichier et le lire tel quel sans avoir à ajouter un machin point js et un bidule point css à côté[#3].) J'ai une infrastructure Java sur le serveur qui inclut un fichier JavaScript commun dans chaque HTML du site (soit généré statiquement pour la plupart des pages, soit généré dynamiquement par Tomcat pour les entrées individuelles du blog). Comme je viens de le dire, ça peut présenter un intérêt ; mais pour tester du JavaScript et le modifier, ça devient vite un calvaire, parce que ça demande de régénérer la page pour chaque essai.

[#3] Raison principale pour laquelle je refuse d'utiliser des trucs comme jQuery ou analogue : ça me semble indispensable qu'on puisse sauvegarder un fichier HTML comme un simple fichier et le lire ensuite n'importe où avec une adresse en file:/// si besoin. Ce qui interdit l'appel à n'importe quel truc JavaScript externe, et notamment jQuery (lequel est beaucoup trop gros pour qu'il soit sérieusement envisageable de l'incorporer directement). C'est là encore une des crottes de ragondin — enfin, plutôt une merde de mammouth pour le coup — qui pollue le Web, qu'il n'y a aucun moyen simple, fiable et robuste de sauvegarder une page Web, avec toutes ses dépendances, et pouvoir la relire ensuite localement.

Mais il y a surtout une chose qui m'est insupportable, c'est si le changement de taille de texte n'est pas transparent mais apparaît après que la page a chargé ; autrement dit, si on voit d'abord la page s'afficher à la taille par défaut, pour ensuite changer et prendre celle qui a été choisie comme préférence. Non seulement c'est visuellement horripilant et très déstabilisant à la lecture, mais en plus ça risque de casser complètement les liens internes (si le navigateur positionne la vue d'après l'ancre qu'on lui a donnée puis change la taille du texte, on risque de voir un autre bout du texte que celui que pointait le lien qu'on a suivi).

J'ai cherché à éviter ce problème en réglant la taille de la police par une fonction JavaScript exécutée dès que l'élément <body> est créé (en gros j'appelle une fonction JavaScript onEarly() depuis le HTML immédiatement après avoir ouvert l'élément <body> de manière à pouvoir régler document.body.style.fontSize dedans, et cette fonction ne fait quasiment que ça pour ne pas retarder le chargement de la page). Cette solution semble marcher sous Firefox mais pas sous Chrome (enfin, sous le Chromium que j'ai pour tester). Je ne sais pas pourquoi : sous Firefox tout marche comme je voudrais, mais sous Chrome je vois d'abord la page s'afficher à la taille par défaut et ensuite changer de taille sous mes yeux — précisément ce que je voulais éviter. À vrai dire je ne comprends pas vraiment (← ceci est un euphémisme pour pas du tout) le synchronisme du JavaScript : à quel moment le code est exécuté, à quel moment on a accès au DOM, à quel moment on peut ajouter du CSS, etc. Donc je ne sais pas à quel moment il faut se positionner pour pouvoir exécuter du JavaScript qui puisse modifier le style de l'élément <body> en ayant la garantie que rien n'a encore été affiché à l'écran : si quelqu'un comprend ce qui se passe avec Chrome et pourquoi il ne se comporte pas comme Firefox à cet égard, qu'il me le dise. Correction : Juste après avoir écrit ça, je reteste et je m'aperçois que ça semble marcher comme je veux, aussi bien sous Chrome que sous Firefox ; je ne sais pas ce qui s'est passé, j'ai dû brièvement passer dans un univers parallèle, ou peut-être que je me suis fait avoir par un mécanisme de cache quelconque.

Toujours est-il que j'ai fait un truc. Je ne suis pas très content de ce truc, mais il marchouille. Si vous avez des suggestions pour le rendre plus élégant, plus robuste, plus intuitif, je suis preneur, mais comme je commence à en avoir sacrément marre à ce stade, toute modification qui requiert des efforts de ma part au-delà du simple copier-coller d'un code qu'on me donnerait va sans doute juste être ignorée.

Ajout : Puisque la longueur des lignes est aussi une râlerie fréquente concernant le style de ce site, j'ai aussi ajouté un jeu de boutons permettant de le régler (entre 50 et 150 caractères par ligne).

Nouvel ajout () : Pour éviter de trop encombrer l'espace visuel, j'ai caché les boutons de réglage de la taille du texte et de la longueur des lignes derrière un bouton ‘⚙’ qui fait apparaître les autres réglages. J'ai aussi ajouté des scrollIntoView() pour que les boutons restent en vue quand on les utilise.

Néanmoins, si mon truc donne grosso modo satisfaction, je verrai si je peux le mettre aussi sur les pages de commentaires du blog (qui sont gérées de façon complètement différentes, par un script Perl antédiluvien auquel je préfère toucher le moins possible, donc j'attends d'être sûr d'avoir le bon JavaScript avant de le recopier).

↑Entry #2777 [older| permalink|newer] / ↑Entrée #2777 [précédente| permalien|suivante] ↑

Continue to older entries. / Continuer à lire les entrées plus anciennes.


Entries by month / Entrées par mois:

2024 Jan 2024 Feb 2024 Mar 2024
2023 Jan 2023 Feb 2023 Mar 2023 Apr 2023 May 2023 Jun 2023 Jul 2023 Aug 2023 Sep 2023 Oct 2023 Nov 2023 Dec 2023
2022 Jan 2022 Feb 2022 Mar 2022 Apr 2022 May 2022 Jun 2022 Jul 2022 Aug 2022 Sep 2022 Oct 2022 Nov 2022 Dec 2022
2021 Jan 2021 Feb 2021 Mar 2021 Apr 2021 May 2021 Jun 2021 Jul 2021 Aug 2021 Sep 2021 Oct 2021 Nov 2021 Dec 2021
2020 Jan 2020 Feb 2020 Mar 2020 Apr 2020 May 2020 Jun 2020 Jul 2020 Aug 2020 Sep 2020 Oct 2020 Nov 2020 Dec 2020
2019 Jan 2019 Feb 2019 Mar 2019 Apr 2019 May 2019 Jun 2019 Jul 2019 Aug 2019 Sep 2019 Oct 2019 Nov 2019 Dec 2019
2018 Jan 2018 Feb 2018 Mar 2018 Apr 2018 May 2018 Jun 2018 Jul 2018 Aug 2018 Sep 2018 Oct 2018 Nov 2018 Dec 2018
2017 Jan 2017 Feb 2017 Mar 2017 Apr 2017 May 2017 Jun 2017 Jul 2017 Aug 2017 Sep 2017 Oct 2017 Nov 2017 Dec 2017
2016 Jan 2016 Feb 2016 Mar 2016 Apr 2016 May 2016 Jun 2016 Jul 2016 Aug 2016 Sep 2016 Oct 2016 Nov 2016 Dec 2016
2015 Jan 2015 Feb 2015 Mar 2015 Apr 2015 May 2015 Jun 2015 Jul 2015 Aug 2015 Sep 2015 Oct 2015 Nov 2015 Dec 2015
2014 Jan 2014 Feb 2014 Mar 2014 Apr 2014 May 2014 Jun 2014 Jul 2014 Aug 2014 Sep 2014 Oct 2014 Nov 2014 Dec 2014
2013 Jan 2013 Feb 2013 Mar 2013 Apr 2013 May 2013 Jun 2013 Jul 2013 Aug 2013 Sep 2013 Oct 2013 Nov 2013 Dec 2013
2012 Jan 2012 Feb 2012 Mar 2012 Apr 2012 May 2012 Jun 2012 Jul 2012 Aug 2012 Sep 2012 Oct 2012 Nov 2012 Dec 2012
2011 Jan 2011 Feb 2011 Mar 2011 Apr 2011 May 2011 Jun 2011 Jul 2011 Aug 2011 Sep 2011 Oct 2011 Nov 2011 Dec 2011
2010 Jan 2010 Feb 2010 Mar 2010 Apr 2010 May 2010 Jun 2010 Jul 2010 Aug 2010 Sep 2010 Oct 2010 Nov 2010 Dec 2010
2009 Jan 2009 Feb 2009 Mar 2009 Apr 2009 May 2009 Jun 2009 Jul 2009 Aug 2009 Sep 2009 Oct 2009 Nov 2009 Dec 2009
2008 Jan 2008 Feb 2008 Mar 2008 Apr 2008 May 2008 Jun 2008 Jul 2008 Aug 2008 Sep 2008 Oct 2008 Nov 2008 Dec 2008
2007 Jan 2007 Feb 2007 Mar 2007 Apr 2007 May 2007 Jun 2007 Jul 2007 Aug 2007 Sep 2007 Oct 2007 Nov 2007 Dec 2007
2006 Jan 2006 Feb 2006 Mar 2006 Apr 2006 May 2006 Jun 2006 Jul 2006 Aug 2006 Sep 2006 Oct 2006 Nov 2006 Dec 2006
2005 Jan 2005 Feb 2005 Mar 2005 Apr 2005 May 2005 Jun 2005 Jul 2005 Aug 2005 Sep 2005 Oct 2005 Nov 2005 Dec 2005
2004 Jan 2004 Feb 2004 Mar 2004 Apr 2004 May 2004 Jun 2004 Jul 2004 Aug 2004 Sep 2004 Oct 2004 Nov 2004 Dec 2004
2003 May 2003 Jun 2003 Jul 2003 Aug 2003 Sep 2003 Oct 2003 Nov 2003 Dec 2003

[Index of all entries / Index de toutes les entréesLatest entries / Dernières entréesXML (RSS 1.0) • Recent comments / Commentaires récents]