1 points par GN⁺ 2023-09-23 | 1 commentaires | Partager sur WhatsApp
  • Une expérience personnelle d’évitement de l’actualité a fini par rejoindre l’actualité tech : après s’être senti impuissant face à des changements négatifs répétés, l’auteur a décidé de créer lui-même un navigateur
  • Sur Hacker News, il est constamment tombé sur des tendances comme des mises à jour indésirables, des hausses d’abonnement, la collecte de données personnelles, des discussions sur l’interdiction du chiffrement ou le contrôle de l’écosystème des navigateurs
  • Cette fois, au lieu de simplement éviter le problème, il tente une petite réponse en tant que programmeur : écrire du code et le publier
  • Il estime peu probable que le projet soit terminé ou devienne un navigateur grand public, et reconnaît qu’il pourrait bientôt s’arrêter s’il ne reçoit pas d’aide
  • Il espère qu’un projet de navigateur non commercial et ouvert inspirera d’autres personnes et mènera à davantage de projets alternatifs

Comment l’évitement de l’actualité a mené au développement d’un navigateur

  • Il y a environ dix ans, alors qu’il se rendait souvent en voiture chez des clients, il écoutait Business News Radio (BNR) ou Radio 1 aux Pays-Bas, jusqu’au jour où il a éteint la radio et n’a plus eu envie d’écouter les informations
  • Il avait le sentiment d’entendre sans cesse aux informations les mêmes mauvaises nouvelles, comme la guerre ou la corruption, et considérait qu’en tant qu’individu il n’avait aucun moyen de résoudre ces problèmes
  • Par la suite, il a évité d’écouter les informations, de les regarder et de parcourir les sites d’actualité ; quand le journal de 20 h commençait, il changeait de chaîne ou quittait la pièce où les informations étaient diffusées
  • Il estimait que les nouvelles importantes finiraient de toute façon par lui parvenir par l’intermédiaire d’autres personnes, et ne consultait plus, de manière limitée, que certains subreddits sur Reddit et l’actualité tech au lieu de l’actualité générale

Le même sentiment d’impuissance dans l’actualité tech

  • Il suivait l’actualité tech à environ 98 % via Hacker News de Y Combinator, mais avec le temps, les sentiments éprouvés dix ans plus tôt face à l’actualité générale ont ressurgi
  • Les problèmes rencontrés de façon répétée étaient les mises à jour indésirables, les promesses non tenues, les hausses d’abonnement, les acquisitions d’entreprises et les tentatives de collecter toujours plus de données personnelles
  • Il voit aussi dans les tentatives de certains gouvernements d’interdire le chiffrement au nom de la lutte contre les délinquants sexuels visant des enfants une partie du même problème
  • Le navigateur devient un enjeu particulièrement important, car c’est là que presque tout le monde dans le monde passe du temps
    • Si le navigateur lui-même affiche de la publicité, les bloqueurs de publicité qui bloquent les annonces des sites pourraient avoir du mal à y répondre
    • Il y a déjà eu des cas où des extensions réservées à un navigateur particulier rendaient difficile l’utilisation de certains sites dans d’autres navigateurs ; il estime que cela pourrait se reproduire si un moyen d’éviter les problèmes de monopole apparaissait

Pourquoi le développer lui-même, avec des attentes modestes

  • Cette fois, plutôt que de simplement fuir, il a estimé qu’en tant que programmeur il pouvait développer lui-même un navigateur et partager le code
  • Sa décision de créer un navigateur repose sur deux raisons
    • tenter de résister, même à toute petite échelle
    • une raison personnelle : il avait depuis longtemps envie d’essayer de créer son propre navigateur
  • Il ne place pas de grands espoirs dans ce projet
    • il ne s’attend pas à ce qu’il soit terminé
    • il pense qu’il pourrait bientôt mourir si personne ne l’aide
    • il ne s’attend pas à ce qu’il devienne un navigateur dominant capable de renverser les grands navigateurs existants
  • Ce qu’il souhaite, c’est qu’il reste ouvert dans un but non commercial, et qu’il puisse inspirer d’autres personnes à créer leurs propres projets
  • L’avancement du projet est visible dans l’article de suivi sur codemusings.nl
  • Le dépôt du projet se trouve sur jaytaph/gosub-browser

1 commentaires

 
GN⁺ 2023-09-23
Avis sur Hacker News
  • Je suis l’OP. Merci pour les commentaires positifs, négatifs et neutres. Pour ajouter quelques points : il est vrai qu’il existe déjà beaucoup de projets de navigateurs auxquels contribuer, et que ce serait plus efficace, mais cela voudrait dire qu’il ne resterait que quelques navigateurs. Moi, je veux qu’il y ait beaucoup de navigateurs, pour que les gens aient le choix.
    C’est clairement un projet personnel. Je l’aurais lancé même si ce n’était pas seulement parce que j’en ai assez de l’industrie tech, mais je suis en colère face à ce sentiment d’impuissance, l’impression de ne rien pouvoir changer, et c’est ma façon d’essayer de faire quelque chose. Je ne m’attends pas à terminer un vrai navigateur. J’aimerais que les gens regardent mon code et en rient, ou qu’ils en tirent de meilleures idées. Par exemple, si les algorithmes du tokenizer et du parser HTML5 étaient expliqués étape par étape, comme sur le site du WHATWG, n’importe qui pourrait écrire plus facilement son propre parser HTML5. Si Google ou Microsoft créaient, grâce à leur domination du marché, un HTML5 custom au format fermé, du genre ghtml, qui pourrait les en empêcher ? Si je veux repartir de zéro, c’est parce que je veux mieux comprendre les difficultés techniques tout en bas de la pile.

    • L’attitude consistant à dire « je suis en colère de ne rien pouvoir faire, et c’est ma façon d’essayer de faire quelque chose » vaut de l’or, et c’est vraiment le genre d’attitude qui change le monde.
      Je suis aussi d’accord avec ce qui est dit sur la misère des « infos ». En guerre psychologique, on appelle cela la démoralisation (sapping). Autrefois, l’ennemi faisait de la propagande pour briser la volonté de résister et rendre les gens impuissants ; Lord Haw-Haw en est un exemple classique. https://en.wikipedia.org/wiki/Lord_Haw-Haw
      Aujourd’hui, les grandes chaînes d’information et les géants de la tech semblent vouloir maintenir les gens dans un état permanent de désespoir et d’anxiété. Le discours autour de la tech ressemble lui aussi à un gouffre de cynisme, d’évitement, de négation, de résignation et d’impuissance acquise ; après avoir mené récemment beaucoup d’entretiens et d’analyses de sentiment, les résultats étaient terribles. J’ai l’impression que le mot « tech » lui-même devient synonyme de « toute résistance est inutile ». Faire quelque chose, non pas parce qu’on s’attend à réussir, mais pour montrer l’exemple et préserver sa propre santé mentale, est la réaction la plus positive et la plus humaine qui soit.
    • C’est étrange de devoir écrire ce genre de réponse sur « hacker » news, mais fais ce que tu as envie de faire. Certains font de la menuiserie, réparent des voitures ou jouent à des jeux ; d’autres aiment coder. Moi aussi, j’ai beaucoup de projets partiels commencés pour diverses raisons, et je les ai tous appréciés. Bonne chance, et amuse-toi. Peut-être que cela deviendra quelque chose de plus grand.
    • Commencer avec l’état d’esprit d’un projet personnel est une très bonne chose.
      Pour le dire à la manière de Linus Torvalds, quand on le fait avec l’idée que « ce n’est pas censé être aussi gros et professionnel que GNU, c’est pour moi », on peut accomplir beaucoup avec bien moins d’efforts. Cela permet de faire des compromis pragmatiques et d’arriver à quelque chose d’utile pour soi avec beaucoup moins d’efforts que lorsqu’on essaie de fabriquer un « produit », que ce soit pour apprendre ou pour un usage réel. Dans mes propres projets personnels, il m’est souvent arrivé de découvrir de petits projets personnels de ce genre, d’en réutiliser une partie, puis de partir dans une direction complètement différente. Il est bien plus facile de prendre un petit projet « suffisamment proche » que de réduire ou d’adapter une énorme bête complète en fonctionnalités. La complexité d’un navigateur vient en grande partie du fait qu’il faut prendre en charge tous les sites et tous les scénarios d’usage ; mais si je le fais pour moi-même, je peux me concentrer sur le fait que les sites qui m’importent fonctionnent assez bien, ce qui réduit énormément le problème. J’aimerais que davantage de gens s’attaquent à des projets « impossibles ». Même si l’ensemble n’est pas immédiatement utile à d’autres, certaines parties peuvent l’être, et parfois, comme avec Linux, quelque chose de plus grand peut naître d’un petit projet personnel.
    • Il suffit d’ignorer le bruit. Sur HN, il y a parfois beaucoup trop de mentalité de panier de crabes.
      Si seulement la moitié du temps passé à dire que le projet de quelqu’un est inutile et une perte de temps était consacrée à des choses constructives, le monde compterait bien plus de projets formidables et intéressants. Mieux vaut échouer dans une entreprise audacieuse et ambitieuse que de ne même pas essayer.
    • J’aimerais que davantage de personnes tentent d’implémenter un navigateur. Beaucoup de commentaires disent que c’est une tâche colossale, et c’est peut-être vrai, mais ce n’est pas pour autant si terrible.
      Il n’est pas nécessaire d’implémenter toutes les fonctionnalités d’un navigateur web moderne. Pas besoin de l’API Battery, de l’API Gamepad ou de l’USB ; il suffit de se concentrer sur l’important : HTML, CSS et JS. Dans le pire des cas, on apprend quelque chose de nouveau. Bonne chance pour le projet.
  • Dire « je n’attends rien, je ne m’attends pas non plus à finir, si personne ne vient aider le projet mourra bientôt, je ne m’attends pas à ce qu’il devienne un navigateur dominant qui renversera les géants du marché » ressemble à la première annonce de Linux que Linus avait publiée sur comp.os.minix.
    C’est ce message qui commençait par « Bonjour à tous ceux qui utilisent minix. Je suis en train de faire un système d’exploitation libre pour les clones AT 386(486). C’est juste un hobby, ce ne sera pas gros et professionnel comme gnu… », puis expliquait qu’il avait porté bash et gcc, qu’il pensait avoir quelque chose de pratique d’ici quelques mois, et demandait quelles fonctionnalités les gens souhaitaient, sans promettre de les implémenter. À la fin, il disait aussi qu’il n’y avait aucun code minix, qu’il y avait un système de fichiers multithread, mais aucune portabilité, et que cela ne prendrait probablement pas en charge autre chose que les disques durs AT.

    • Il disait que cela ne prendrait « probablement pas en charge autre chose que les disques durs AT », et aujourd’hui on installe Linux dans des vaisseaux spatiaux.
      Personne ne sait jusqu’où un projet ira. Et si on le fait pour ses propres raisons, d’une certaine manière, cela n’a même pas d’importance.
    • Lire cette annonce si ancienne donne une impression folle, et pourtant nous en sommes arrivés là. Il est aussi étonnant que Linus continue à diriger le projet avec autant de constance, et Linux est désormais devenu le système d’exploitation qui sous-tend Internet. Les salles serveurs de presque toutes les grandes entreprises sont composées en majorité de serveurs faisant tourner Linux ou des dérivés internes.
  • Je ne suis pas habitué à une ambiance aussi négative sur HN au sujet des navigateurs et du Web ouvert. Qu’il réussisse ou non, je vois cela comme une tentative très précieuse.
    Même si le résultat n’est qu’un navigateur à moitié abouti, mais non soumis aux motivations des géants de la tech, il pourrait être utile le jour où il faudra cesser de dépendre de Firefox. J’aime beaucoup Firefox et j’espère que ce jour n’arrivera pas, mais j’ai pris conscience que mon navigateur est une sorte de goulot d’étranglement dans mon accès au Web. Il existe d’autres sites pour consulter les mêmes contenus, et d’autres marques d’ordinateurs que je peux utiliser, mais au milieu il y a toujours Firefox. Il y a bien d’autres navigateurs, mais ils semblent pour la plupart reposer sur Googlium, ou quel que soit son nom aujourd’hui. Je leur souhaite donc bonne chance et de réussir, et je compte m’abonner au flux RSS pour jeter de temps en temps un œil au projet.

    • Quand un fil sur les navigateurs s’ouvre sur HN, ce n’est pas presque devenu le déroulé habituel d’avoir une douzaine de réponses très bien notées affirmant qu’il est impossible de créer un nouveau navigateur ?
      Il existe pourtant des preuves que c’est possible. Ladybird a été créé à partir de zéro et, à l’origine, ils avaient même écrit leur propre bibliothèque standard C++ ; après 3 ou 4 ans de travail à temps partiel, il fait maintenant tourner Discord, même si c’est lentement. Il y a désormais aussi des développeurs à plein temps. À en juger par le cargo.lock de GoSub, ils ne semblent pas vouloir tout réimplémenter depuis zéro, et il paraît probable qu’ils utilisent des briques existantes pour des choses comme les décodeurs d’images, ce qui lui donne aussi le potentiel de progresser plus vite.
  • Aujourd’hui, « écrire un navigateur à partir de zéro » revient en pratique à implémenter un système d’exploitation portable dans une boîte, c’est-à-dire la plateforme Web, et à le rendre compatible avec ce que Google décide d’ajouter à son propre navigateur.
    Les navigateurs ont un périmètre de fonctionnalités et d’API tellement vaste, et il est si difficile de suivre les changements incessants de Google et sa domination, que même Microsoft n’y est pas parvenu. Il existe un projet personnel lié à ce sujet : Tersenet. https://github.com/runvnc/tersenet
    C’est presque davantage un concept qu’une implémentation, mais les exigences ont été choisies délibérément pour que des gens puissent les implémenter. C’est bien moins complexe qu’un navigateur Web complet. Il y a aussi une discussion liée avec GPT-4. https://chat.openai.com/share/16d02b78-f876-4c87-949a-a60b4f...
    Le projet Gemini, qui existe réellement et est pratique, est également lié. https://geminiprotocol.net/ Il a inspiré l’idée de Tersenet.

    • Pas forcément. Si l’on limite le périmètre à un visualiseur de documents hypertexte, cela devient soudainement accessible. Beaucoup de fonctionnalités sont des choses de type PWA que personne ne voulait et qui ne servent pas à grand-chose de bon.
      WebSQL, IndexedDB, les service workers, WebGL, WebGPU, WebBluetooth, WebRTC : il suffit de faire comme si tout cela n’existait pas. 99 % des vrais sites Web, c’est-à-dire les sites qui ne sont pas des « apps » Web, ne perdront aucune fonctionnalité.
    • Ladybird est un projet très jeune, mais il progresse à un rythme plutôt correct. Il faut bien sûr tenir compte du fait que son développeur principal a pas mal d’expérience dans ce domaine.
      Personnellement, j’aimerais qu’il existe davantage de moteurs alternatifs, en plus de la monoculture Blink et de son cousin WebKit, ainsi que Gecko/Quantum. Quelque chose qui prenne la place qu’occupait KHTML avant d’être absorbé par WebKit, ou simplement une autre option open source avec laquelle expérimenter.
    • Dire qu’il faut être compatible avec ce que Google décide d’ajouter à son navigateur est excessif. Beaucoup de personnes respectables maintiennent des pages personnelles en HTML beaucoup plus simple, et news.ycombinator.com est aussi apprécié parce qu’il conserve une apparence classique.
      J’aimerais que les nombreuses personnes qui partagent largement cette idée s’accordent sur le sous-ensemble qu’elles utiliseraient, et je pourrais me satisfaire d’un navigateur qui ne fait pas tout ce que fait le navigateur de Google. Avec uMatrix, je désactive une bonne partie des fonctionnalités de Google, je ne mets jamais les domaines google.com sur liste blanche, et je l’utilise comme pour prouver que le monde ne s’écroule pas. Les sites qui ne fonctionnent pas sont relativement peu nombreux.
    • Pourquoi faudrait-il absolument faire ce que fait Google ? La plupart des sites Web suivent HTML et ECMAScript. Le cœur de ce projet n’est-il pas de se désynchroniser de ce que font les géants de la tech ?
      L’immense majorité des sites Web ne veulent pas suivre des technologies publicitaires, AMP, DRM et autres choses récemment inventées spécialement pour Google.
    • Ce qui manque pour enrichir l’écosystème des navigateurs, ce ne serait pas plutôt un runtime/interpréteur JavaScript modulaire et indépendant, comparable à Java ? Il existe plusieurs JVM pour Java. https://en.wikipedia.org/wiki/List_of_Java_virtual_machines
      Mozilla et d’autres devraient peut-être créer une « VM » JavaScript indépendante que tout le monde pourrait utiliser.
  • En tant que personne qui ne savait absolument pas comment fonctionne un « vrai » navigateur, mais qui a quand même décidé d’en écrire un, y compris avec un moteur de mise en page personnalisé, j’ai envie de dire : faites-le, tout simplement.
    Voir des sites Web rendus par son propre code est extrêmement gratifiant, même si le code ou la sortie sont terriblement bancals. Mon projet a environ deux ans et demi, et il rend maintenant HN et des blogs simples de façon à peu près correcte. Est-il objectivement meilleur que w3m, qu’il devait remplacer au départ ? Pas forcément, et je reviens encore à w3m pour certaines tâches. Mais il m’est quand même utile pour des choses auxquelles je n’aurais pas pensé, j’ai beaucoup appris sur la programmation, et c’est chouette de voir que ça marche malgré tout. https://sr.ht/~bptato/chawan

  • Créer un navigateur, ça veut dire créer un moteur de rendu et un moteur de mise en page. Ce n’est pas impossible, mais c’est une tâche assez énorme.
    Cela dit, il y a beaucoup de choses qui ont davantage de chances de porter leurs fruits. On peut porter Servo vers Nyxt Browser, ou forker WebKit/Servo/Gecko pour retirer les standards web intrusifs et nuisibles aux utilisateurs que les entreprises de publicité ont injectés ces dix dernières années. Si ce sont de toute façon des choses qu’il faudra faire en partant de zéro, mieux vaut commencer au sein d’une communauté existante déjà disposée à travailler ensemble plutôt que depuis le plancher des vaches.

    • C’est donc ce que j’ai fait avec WebKit. https://github.com/tholian-network/retrokit Parce qu’il s’est avéré que Servo n’était plus aussi modulaire qu’avant.
      Gecko est quasiment la définition même d’un monolithe, donc il est impossible d’en supprimer la surface d’attaque, et même Tor utilise une méthode médiocre de remplacement par des stubs qui casse à chaque changement d’API interne ou de bridge. En revanche, suivre l’upstream seul est impossible, donc il faut des contributeurs et des mainteneurs. Du point de vue de la cybersécurité, j’ai documenté autant que possible la surface d’attaque, ainsi que le travail restant et ce qu’il faudra finir par supprimer. https://github.com/tholian-network/retrokit/blob/main/SECURI...
      Je peux être assez subjectif, car je veux utiliser RetroKit comme webview pour mon Browser Stealth. Browser Stealth fonctionne comme proxy de filtrage, scraper et cache décentralisé. https://github.com/tholian-network/stealth Il est actuellement en cours de réécriture en Golang.
    • Je maintiens une bibliothèque de mise en page web conçue pour être intégrée dans d’autres logiciels. https://github.com/DioxusLabs/taffy
      Elle doit être combinée avec un moteur de mise en page de texte comme https://github.com/pop-os/cosmic-text, et ne prend pas encore en charge toutes les fonctionnalités. Parmi les principales fonctionnalités actuellement manquantes figurent float, display: inline-block, box-sizing: content-box et position: static. Mais Block, Flexbox et CSS Grid sont pris en charge, et d’autres éléments sont en cours d’ajout.
    • C’est bien une tâche lourde, mais je ne pense pas que ce soit une raison pour abandonner. À certains égards, c’est même plus facile aujourd’hui qu’avant, parce qu’il existe désormais des standards exhaustifs.
      C’est certes un gros chantier, mais ce n’est pas non plus la chose la plus impossible pour une petite équipe dévouée.
    • Un moteur de rendu et de mise en page n’a-t-il pas besoin de réussir tous les tests ACID dès le départ, non ? On peut construire progressivement.
      Il suffit de commencer par rendre des sites HTML raisonnablement simples, il n’y a pas d’urgence, et aucune règle stricte n’impose d’implémenter tous les recoins du standard. Les navigateurs web et le Web sont glorieusement humains.
    • Il ne faut écrire soi-même le moteur de rendu et de mise en page que si l’on veut repartir de zéro. Un navigateur est avant tout une application orientée utilisateur, pas simplement les rouages internes qui le font fonctionner.
      On peut prendre des moteurs existants, les relier, les modulariser suffisamment pour pouvoir les remplacer à tout moment, et cela reste un véritable navigateur. Personnellement, j’ai l’impression que les gens ici se concentrent trop sur les rouages internes, alors qu’en réalité, au-delà du rendu, de la mise en page et du scripting, il faut aussi de meilleures interfaces et d’autres composants.
  • Courage, je te soutiens. Continue.
    J’ai implémenté en Python une toute petite partie de l’algorithme ORC Solver, et j’ai utilisé wxWidgets pour le rendu. J’ai utilisé l’API de mesure de texte de wxWidgets pour calculer la largeur du texte. Le livre blanc d’ORC Solver est ici. https://yuejiang-nj.github.io/Publications/2020CHI_ORCSolver...
    Je réfléchis à la manière d’implémenter le branch and bound, donc toute information à ce sujet serait bienvenue. Pour étudier les algorithmes de composition, il faudra sans doute que je me plonge dans la base de code de TeX, et utiliser la bibliothèque JavaScript Masonry pour le bin packing de mise en page a aussi été très intéressant.

  • « Si vous voulez mon HTML, je vous le donnerai ! Cherchez-le ! J’ai laissé tout ce que le monde contient à cet endroit. »
    « C’est ainsi que les hackers, poursuivant leur rêve, se dirigèrent vers la HyperText Line, et que le monde entra véritablement dans la grande ère des navigateurs ! »
    Pendant des années, j’ai cru que les navigateurs étaient une montagne infranchissable, mais il semble désormais que de plus en plus de gens pensent que nous pouvons y arriver. Mon analyse en deux secondes, c’est que cette tendance apparaît parce que les nouveaux créateurs de navigateurs ne cherchent pas à imiter les monstres géants existants ni à rivaliser avec eux, mais veulent changer le Web. Ça me plaît.

  • Sur les aspects politiques du billet, le monde est cassé, et lire uniquement des nouvelles cassées est épuisant. Cela dit, se couper de la réalité pour devenir « apolitique », c’est, à mon avis, renoncer à l’humanité — donc renoncer à ses propres enfants et neveux, ainsi qu’aux enfants de ses meilleurs amis.
    Il n’est pas nécessaire de changer le monde ; de petits changements dans sa propre communauté suffisent. En particulier, en tant que codeurs, ce que nous créons peut toucher des milliers de personnes dans le monde entier et changer des trajectoires. Je me demande parfois si les choses auraient été différentes si tout le monde avait consacré ne serait-ce que 3 à 5 % de son temps à soutenir sa communauté et à une forme d’engagement.

    • Je ne regarde pas du tout les infos. 99 % sont des déchets biaisés, souvent même pas factuels, et ça pollue l’esprit. Grâce à ça, ma vie et ma santé mentale se portent bien mieux.
      Rien de ce que je lis dans les infos ne changerait ma façon de voter, alors que c’est probablement la meilleure raison de les suivre.
    • Je suis clairement d’accord sur l’implication dans la communauté. Déneiger devant la maison d’un voisin âgé, c’est bien parce que c’est réellement faire quelque chose.
    • Je suis globalement d’accord. Il y a quelques années, j’ai décidé d’arrêter d’écouter les infos, mais c’était après avoir décidé de ne pas avoir d’enfants. Que les gens qui font des enfants se bouchent les oreilles me semble problématique.
      Pour le dire simplement, j’ai renoncé au monde. Mais les enfants des autres ne sont pas ma responsabilité. Je fais à peu près autant que les autres pour faire « ce qu’il faut », mais pas davantage. Avant, je me préoccupais de ces choses, j’essayais de réduire mon empreinte personnelle, je pensais à la durabilité et aux générations futures, mais j’ai perdu espoir. J’avais l’impression de lutter à contre-courant. Maintenant, je me contente de faire en sorte que mon empreinte ne soit pas plus grande que la moyenne et d’être correct avec les gens autour de moi.
    • Se couper de l’industrie de l’information ne signifie pas automatiquement se couper de la réalité. Du moins, je l’espère. Pour ma part, je ne consomme des infos non techniques qu’environ une fois par semaine.
  • Si Rust est indispensable, il me semblerait plus utile de contribuer à Servo en commençant par de petites PR, et d’apprendre ainsi. https://github.com/servo/servo
    Cela dit, je comprends : il m’est déjà arrivé de lancer un projet « from scratch » parce que je trouvais une base de code existante difficile à lire, ou parce que je pensais pouvoir faire mieux. Chacun sa méthode.

    • Écrire soi-même une version jouet d’un programme est un excellent moyen de comprendre la grande version.
    • Rust et Servo ayant démarré ensemble, Servo contient beaucoup de code antérieur à Rust 1.0, ce qui a laissé par endroits un style moins qu’idéal.
      De même, Servo a été conçu pour remplacer certaines parties du navigateur Firefox et devait donc s’insérer dans des trous « en forme de Gecko ». Par exemple, il utilise des chaînes UTF-16 à plusieurs endroits pour rester compatible avec le reste de Firefox. Si on le faisait aujourd’hui, on pourrait peut-être réécrire Servo en Rust moderne pour le rendre plus petit, plus agile, et peut-être plus rapide.
    • Servo est un projet incroyable et j’aime aussi ce que Mozilla a fait, mais au final, financièrement, ils ne sont pas liés à Google ?