Mesurer prĂ©cisĂ©ment la taille d’un texte sur le web a toujours Ă©tĂ© un dĂ©fi technique majeur. Un nouvel algorithme imaginĂ© par Cheng Lou pourrait bien changer la donne… et transformer en profondeur le dĂ©veloppement front-end.
Ă premiĂšre vue, afficher du texte semble trivial. Pourtant, c’est l’un des problĂšmes les plus complexes du web moderne.
- Un simple “caractĂšre” peut cacher une rĂ©alitĂ© bien plus complexe :
- Emojis composĂ©s (đšđ©đ§đŠ)
- Drapeaux (đ«đ·)
- Variantes de peau
- Ligatures typographiques (fi, fl)
- Ăcritures non latines
- Ă cela s’ajoutent les rĂšgles linguistiques :
- Français / anglais → dĂ©coupe par espaces
- Chinois / japonais → pas d’espaces
- Arabe → Ă©criture RTL (droite → gauche)
- Certaines langues → rĂšgles de cĂ©sure spĂ©cifiques
- Et enfin… le navigateur entre en scĂšne.
Le rÎle (coûteux) du navigateur : DOM, CSS et ...
Pour afficher une page, le navigateur suit un pipeline complexe :
- HTML → transformation en DOM
- Application du CSS
- Calcul du layout (positions, tailles, retours Ă la ligne)
- Rendu Ă l’Ă©cran
- Le problĂšme :
DĂšs qu’un dĂ©veloppeur veut mesurer un texte, il dĂ©clenche souvent un recalcul → le fameux reflow.
-Résultat :
- Performances dégradées
- Interfaces moins fluides
- Code complexe et fragile
Les solutions actuelles (et leurs limites)
Jusqu’ici, deux approches existaient :
1. Mesurer via le DOM
✔ Simple
❌ DĂ©clenche des reflows coĂ»teux
2. Recréer le moteur de layout
✔ ContrĂŽle total
❌ ComplexitĂ© extrĂȘme (langues, glyphes, typographie…)
- Conclusion : aucun compromis satisfaisant.
La solution : un algorithme qui contourne le navigateur
C’est ici qu’intervient l’innovation de Cheng Lou.
Son projet, Pretext, propose une approche radicale :
-Sortir le calcul du texte du navigateur.
Comment ça fonctionne ?
-
Pré-calcul du texte
- Mesure via canvas
- Analyse des glyphes
-
Simulation du layout en TypeScript
- Calcul des retours Ă la ligne
- Détermination de la hauteur
- Aucun accĂšs au DOM
Résultat :
- Pas de reflow
- Calcul instantané
- ContrĂŽle total
Jusqu’Ă 500 fois plus rapide ?
Le dĂ©veloppeur annonce des performances pouvant atteindre ×500.
Attention toutefois :
- Ce n’est pas une comparaison directe
- Le navigateur fait beaucoup plus (layout complet)
- Le gain vient surtout de l’Ă©vitement du DOM
En rĂ©alitĂ©, c’est un changement de paradigme :
On ne demande plus au navigateur → on calcule soi-mĂȘme.
Des possibilités inédites pour le front-end
Cette approche ouvre la porte à des interfaces bien plus avancées :
Cas d’usage concrets :
- Bulles de chat parfaitement ajustées
- Layouts éditoriaux type magazine
- Texte autour de formes complexes
- Virtualisation massive de contenu
- ASCII art avec polices proportionnelles
-Bref : plus de liberté, moins de hacks CSS.
Les limites Ă ne pas ignorer
MalgrĂ© son potentiel, Pretext n’est pas magique :
Précision imparfaite
Les moteurs des navigateurs restent ultra sophistiqués.
Accessibilité
Si tout passe en canvas :
- Pas de sélection de texte
- Pas de lecture vocale native
- Navigation clavier complexe
Compatibilité
Différences selon :
- OS
- polices
- navigateurs
Vers une nouvelle Ăšre du web ?
Pretext pourrait marquer un tournant :
-Redonner aux développeurs le contrÎle du layout
-Réduire la dépendance au moteur du navigateur
-Accélérer les interfaces complexes
Mais une question reste ouverte :
Le web doit-il rester dĂ©claratif… ou devenir de plus en plus programmatique ?
L’algorithme de Cheng Lou ne se contente pas d’amĂ©liorer les performances.
Il propose une vision différente du web :
- plus contrĂŽlable
- plus prévisible
- potentiellement plus rapide
- S’il tient ses promesses, il pourrait bien redĂ©finir la maniĂšre dont nous concevons les interfaces utilisateur.
