Savez-vous combien de temps dure une seconde pour un ordinateur construit aujourd'hui ? Que peut faire un tel ordinateur pendant que vous dites "Mississippi" ? Que fait un ordinateur pendant que vous tapez "Bonjour" ?
Si nous avions une imprimante magique capable d'imprimer chaque instruction exécutée par un ordinateur et pourquoi il l'exécute, pendant qu'il l'exécute, en temps réel, nous ne bougerions plus jamais nos curseurs par ennui à cause du choc qui suit la réalisation de la puissance que ce curseur exerce et qui ne nous le permet pas.
Il existe de nombreux exemples parmi lesquels choisir : combien de fois des données d'une taille équivalente à tous les écrits de Shakespeare sont-elles déplacées en mémoire pendant le temps qu'il faut pour effectuer un double-clic ? Combien de requêtes provenant de combien de personnes un MacBook Pro standard pourrait-il gérer par seconde sans qu'un ventilateur ne s'allume ? — mais dernièrement, je me suis penché sur le rendu de texte et savoir que tout cela se produit tout le temps est merveilleux.
Naïvement, on pourrait penser que l'affichage de texte est devenu une seconde nature pour un ordinateur. Après 50 ans d'ordinateurs affichant du texte, c'est sûrement devenu quelque chose de naturel, d'une manière ou d'une autre, et un ordinateur n'a pas vraiment besoin de faire des efforts pour le faire, n'est-ce pas ?
Mais non, le rendu du texte est un exercice fastidieux et cela arrive tout le temps.
Le rendu du texte nécessite de le mettre en forme , afin de déterminer comment afficher le texte dont vous disposez avec ce qui se trouve dans le fichier de police que vous souhaitez utiliser. Il faut trouver le glyphe approprié pour chaque caractère (au fait, qu'est-ce qu'un caractère ?), prêter attention aux ligatures et aux variantes de glyphes et de marques dépendantes de la position, aux combinaisons de caractères et au crénage et, bien sûr, à vos préférences de ligatures et de fonctions de police personnalisées.
Une fois que vous avez façonné le texte et que vous savez quels glyphes rendre, vous devez, devinez quoi, les rendre réellement et cela signifie prendre les contours contenus dans le fichier de police et les transformer en courbes et prêter attention aux neuf tables requises dans les fichiers TrueType et savoir ce que sont les glyphes composés, puis une fois que vous savez à quoi doit ressembler le glyphe, devinez quoi encore, vous devez l'afficher réellement.
Cela signifie transformer les courbes en pixels, du mieux que vous pouvez, car personne n'aime le texte flou, et peut-être le faire avec le CPU ou peut-être le faire avec le GPU, mais au final, vous vous retrouvez avec des pixels sur le GPU, puis le GPU positionne les pixels en fonction de tous les calculs que vous avez effectués pour le positionnement, les sauts de ligne, l'espacement des caractères, l'espacement des lignes, le poids des polices et toutes les autres choses que vous pouvez apparemment faire avec les polices.
Et puis le GPU, le CPU, le système d'exploitation et toute la famille transforment cela en quelque chose que vous pouvez ensuite regarder, y compris toutes les autres choses que toutes les autres applications veulent également afficher, y compris vos souhaits de transparence et d'arrière-plans flous et de résolutions d'affichage à l'échelle et de niveaux de zoom.
Et tout cela se produit, d’un simple glissement de doigt, cent vingt fois par seconde.
Alors, regardez cette ligne, regardez où se trouvent les lettres et les virgules et reconnaissez-la pour ce qu’elle est : un miracle.
Aparté
Il s'agit d'une nouvelle section d’Out of the box que je souhaite expérimenter, fidèle à l'idée originale de cette newsletter contenant « ce que je vous enverrais si vous me demandiez ce que j'ai en tête cette semaine ». Dans cette section, je souhaite partager des choses de la semaine précédente que je trouve intéressantes.
Les animations sans scintillement du texte dans un terminal, montrées dans la première vidéo ici , m'ont fait dire : ouah.
Ce commentaire HN (Hacker news) dans lequel quelqu'un explique que la fonctionnalité qui les maintient dans iTerm2 est « la sélection qui respecte les soft-boundaries », ce qui leur permet de sélectionner du texte entre deux caractères |, par exemple dans Weechat. C'est incroyable de voir à quel point des fonctionnalités de niche peuvent être indispensables dans les outils de développement.
J'ai trouvé ces réflexions de Nick Hobbs , qui travaille chez Google sur l'IA, très intéressantes : « Au lieu de livrer quelque chose de génial, l'équipe revient à la petite étape évidente : lançons une icône scintillante (le logo de Gemini) quelque part qu’il vous écrive un brouillon ! »
Cet article d'Aaron Francis est désormais dans mon panthéon des écrits sur la gestion de l'attention à l'ère des médias sociaux. Autre membre notable : How I Got My Attention Back de Craig Mod .
Comment forcer la commande `true` à renvoyer `false` : m'a rappelé qu'il est « extrêmement important que nous, en informatique, gardions du plaisir en informatique ».
J'ai vu passé un tweet à propos d'un utilisateur qui gardait des fichiers non enregistrés dans Sublime Text depuis 9 ans et quelqu'un a répondu qu'il avait un collègue qui gardait tous ses dossiers de courrier électronique comme sous-dossiers du dossier Corbeille. Il y a d'autres histoires d'horreur/amusantes comme celle-là dans les autres réponses.