1 Punkte von GN⁺ 2023-09-23 | 1 Kommentare | Auf WhatsApp teilen
  • Aus einer persönlichen Erfahrung der Nachrichtenvermeidung entwickelte sich der Weg zu Tech-News, und nachdem sich angesichts sich wiederholender negativer Veränderungen ein Gefühl der Ohnmacht eingestellt hatte, fiel die Entscheidung, selbst einen Browser zu bauen
  • Auf Hacker News tauchten immer wieder Entwicklungen auf wie unerwünschte Updates, steigende Abogebühren, Datensammlung, Diskussionen über ein Verbot von Verschlüsselung und Kontrolle über das Browser-Ökosystem
  • Diesmal soll es nicht beim Ausweichen bleiben; stattdessen wird als Programmierer ein kleiner Gegenimpuls versucht, indem Code geschrieben und veröffentlicht wird
  • Es wird als unwahrscheinlich angesehen, dass das Projekt fertig wird oder ein Mainstream-Browser wird; ohne Hilfe könnte es bald wieder eingestellt werden
  • Die Hoffnung ist, dass ein nichtkommerzielles, offenes Browser-Projekt andere inspiriert und zu mehr alternativen Projekten führt

Wie Nachrichtenvermeidung zur Browser-Entwicklung führte

  • Vor etwa zehn Jahren wurde auf häufigen Autofahrten zu Kunden in den Niederlanden oft Business News Radio (BNR) oder Radio 1 gehört, doch eines Tages wurde das Radio ausgeschaltet und danach bestand kein Wunsch mehr, wieder Nachrichten zu hören
  • Es entstand der Eindruck, dass in den Nachrichten nur immer wieder schlechte Dinge wie Krieg und Korruption zu hören seien, und dass es als Einzelperson keine Möglichkeit gebe, diese Probleme zu lösen
  • Danach wurden Nachrichtenhören, Nachrichtenschauen und das Durchstöbern von Online-Nachrichten vermieden; begann die 20-Uhr-Nachrichtensendung, wurde der Kanal gewechselt oder der Raum verlassen
  • Wichtige Meldungen würden einen über andere Menschen ohnehin erreichen, daher wurden statt allgemeiner Nachrichten nur einige Subreddits auf Reddit und Tech-News in begrenztem Umfang verfolgt

Wiederkehrende Ohnmacht auch in Tech-News

  • Tech-News wurden zu etwa 98 % über Y Combinators Hacker News verfolgt, doch mit der Zeit wurden die Gefühle wieder stärker, die zuvor schon bei allgemeinen Nachrichten vor zehn Jahren aufgekommen waren
  • Zu den Problemen, die immer wieder auftauchten, gehörten unerwünschte Updates, gebrochene Versprechen, steigende Abogebühren, Firmenübernahmen und Versuche, noch mehr persönliche Daten zu sammeln
  • Auch die Tendenz von Regierungen, unter Verweis auf Sexualstraftäter gegen Kinder Verschlüsselung verbieten zu wollen, wird als Teil desselben Problems gesehen
  • Browser werden dabei als besonders wichtig betrachtet, weil fast alle Menschen weltweit einen großen Teil ihrer Zeit dort verbringen
    • Wenn der Browser selbst Werbung anzeigt, könnten Adblocker, die Werbung auf Websites blockieren, nur schwer darauf reagieren
    • Es gab Fälle, in denen Websites durch browserexklusive Erweiterungen in anderen Browsern schwer nutzbar wurden; wenn es wieder Wege gibt, Monopolprobleme zu umgehen, könnte sich das erneut wiederholen

Warum selbst bauen und warum die Erwartungen niedrig sind

  • Diesmal wurde entschieden, nicht einfach nur auszuweichen, sondern als Programmierer selbst einen Browser zu entwickeln und den Code zu teilen
  • Es gibt zwei Gründe, einen Browser zu bauen
    • Ein Versuch, wenigstens auf sehr kleine Weise gegenzuhalten
    • Der persönliche Wunsch, schon lange einmal selbst einen Browser zu bauen
  • Die Erwartungen an das Projekt sind nicht hoch
    • Es wird nicht erwartet, dass es fertig wird
    • Ohne Mitstreiter könnte es bald sterben
    • Es wird nicht erwartet, dass daraus ein dominanter Browser wird, der die bestehenden großen Browser verdrängt
  • Gewünscht ist vielmehr ein Zustand, in dem das Projekt für nichtkommerzielle Zwecke offen ist und andere inspiriert, eigene Projekte zu starten
  • Den Fortschritt des Projekts kann man in diesem Fortschrittsbeitrag auf codemusings.nl verfolgen
  • Das Projekt-Repository befindet sich unter jaytaph/gosub-browser

1 Kommentare

 
GN⁺ 2023-09-23
Hacker-News-Meinungen
  • Ich bin der OP. Danke für die positiven, negativen und neutralen Kommentare. Ein paar Ergänzungen: Es stimmt, dass es bereits viele Browser-Projekte gibt, zu denen man beitragen kann, und dass das effizienter wäre. Aber dann bleiben am Ende nur ein paar Browser übrig. Ich möchte, dass es viele Browser gibt, damit die Leute eine Wahl haben.
    Das ist ganz klar ein persönliches Projekt. Ich hätte es wohl auch angefangen, wenn ich nicht nur von der Tech-Branche die Nase voll gehabt hätte, aber ich bin wütend über das Gefühl der Ohnmacht, nichts ändern zu können, und das ist meine Art, etwas zu versuchen. Ich erwarte nicht, dass tatsächlich ein fertiger Browser entsteht. Ich hoffe, dass Leute meinen Code sehen und darüber lachen oder bessere Ideen daraus gewinnen. Wenn zum Beispiel die Algorithmen für den HTML5-Tokenizer und -Parser wie auf der WHATWG-Seite Schritt für Schritt erklärt sind, wird es für jeden einfacher, seinen eigenen HTML5-Parser zu schreiben. Wenn Google oder Microsoft auf Basis ihrer Marktmacht ein geschlossenes, eigenes HTML5-Format schaffen würden, etwa ghtml, wer könnte sie daran hindern? Der Grund, warum ich bei null anfangen will, ist, dass ich die technischen Schwierigkeiten ganz unten besser verstehen möchte.

    • Die Haltung „Ich bin wütend darüber, dass ich nichts tun kann, und das ist meine Art, etwas zu versuchen“ ist Gold wert und tatsächlich die Art von Haltung, die die Welt verändert.
      Auch die Aussage über das Elend der „Nachrichten“ kann ich nachvollziehen. In der psychologischen Kriegsführung nennt man so etwas Zermürbung (sapping). Früher verbreitete der Feind Propaganda, um den Widerstandswillen zu brechen und Menschen machtlos zu machen; ein klassisches Beispiel war Lord Haw-Haw. https://en.wikipedia.org/wiki/Lord_Haw-Haw
      Heute wirken Mainstream-Nachrichtenkanäle und Tech-Giganten so, als wollten sie Menschen in permanenter Verzweiflung und Angst festhalten. Auch der Tech-Diskurs fühlt sich an wie eine Grube aus Zynismus, Ausweichen, Verneinung, Resignation und erlernter Hilflosigkeit; ich habe in letzter Zeit viele Interviews und Sentiment-Analysen gemacht, und die Ergebnisse waren furchtbar. Es fühlt sich an, als würde das Wort „Tech“ selbst allmählich zu einem Synonym für „Widerstand ist zwecklos“. Nicht weil man Erfolg erwartet, sondern um ein Beispiel zu geben und den eigenen Verstand zu bewahren, überhaupt etwas zu tun, ist die positivste und menschlichste Reaktion.
    • Es ist schon seltsam, dass man so eine Antwort auf „Hacker“ News schreiben muss, aber mach einfach, worauf du Lust hast. Manche machen Holzarbeiten, reparieren Autos oder spielen Games, und manche programmieren gern. Auch ich habe viele Nebenprojekte, die ich aus verschiedenen Gründen angefangen habe, und sie haben alle Spaß gemacht. Viel Glück und hab Freude daran. Vielleicht wird ja etwas Größeres daraus.
    • Es ist sehr gut, mit der Haltung eines persönlichen Projekts anzufangen.
      In der Art von Linus Torvalds ausgedrückt: Wenn man es mit der Haltung macht „Ich will nichts Großes und Professionelles wie GNU bauen, sondern etwas für mich“, kann man mit viel weniger Aufwand viel erreichen. So kann man pragmatisch Kompromisse eingehen und kommt, ob zum Lernen oder für den echten Gebrauch, mit deutlich weniger Aufwand zu etwas, das einem selbst nützt, als wenn man ein „Produkt“ bauen würde. Bei meinen eigenen Projekten war es oft so, dass ich solche kleinen persönlichen Projekte entdeckt, Teile davon wiederverwendet und dann eine völlig andere Richtung eingeschlagen habe. Es ist viel einfacher, ein kleines Projekt zu nehmen, das „nah genug dran“ ist, als ein riesiges, voll ausgestattetes Biest zu verkleinern oder anzupassen. Die Komplexität von Browsern kommt zu einem großen Teil daher, dass sie jede Website und jedes Nutzungsszenario unterstützen müssen. Wenn man ihn aber für sich selbst baut, kann man sich darauf konzentrieren, dass die Sites, die einem wichtig sind, gut genug funktionieren, und das reduziert das Problem erheblich. Ich wünschte, mehr Leute würden sich an „unmögliche“ Projekte wagen. Auch wenn das Ganze nicht sofort für andere nützlich ist, können Teile davon nützlich sein, und manchmal entsteht wie bei Linux aus einem kleinen persönlichen Projekt etwas Größeres.
    • Den Lärm kannst du ignorieren. Auf HN gibt es manchmal viel zu viel Krabben-im-Eimer-Mentalität.
      Wenn nur die Hälfte der Zeit, die Leute darauf verwenden, jemandes Projekt als nutzlose Zeitverschwendung zu bezeichnen, in konstruktive Arbeit fließen würde, gäbe es auf der Welt viel mehr coole und interessante Projekte. Es ist besser, an etwas Kühnen und Ambitionierten zu scheitern, als es gar nicht erst zu versuchen.
    • Ich wünschte, mehr Leute würden versuchen, Browser zu implementieren. Es gibt viele Kommentare, die sagen, dass das eine enorme Aufgabe sei, und das kann tatsächlich stimmen, aber so schlimm ist es deshalb noch lange nicht.
      Man muss nicht jede Funktion eines modernen Webbrowsers implementieren. Dinge wie Battery API, Gamecontroller API oder USB braucht man nicht; man kann sich auf das Wichtige konzentrieren: HTML, CSS und JS. Selbst im schlimmsten Fall lernt man etwas Neues. Viel Glück mit dem Projekt.
  • „Ich erwarte nichts, ich erwarte auch nicht, dass ich es fertigstelle, ohne Helfer wird das Projekt bald sterben, und ich erwarte nicht, dass es ein dominierender Browser wird, der die großen Player des Marktes stürzt“ erinnert an die erste Linux-Ankündigung, die Linus auf comp.os.minix gepostet hat.
    Sie begann mit „Hallo an alle, die minix benutzen. Ich arbeite an einem freien Betriebssystem für 386(486)-AT-Klone. Es ist nur ein Hobby und wird nicht groß und professionell wie gnu sein …“, erwähnte, dass bash und gcc portiert waren, dass innerhalb weniger Monate wohl etwas Praktisches entstehen könnte, und bat um gewünschte Features, ohne deren Umsetzung zu versprechen. Am Ende hieß es außerdem, dass keinerlei minix-Code enthalten sei, dass es ein multithreaded Dateisystem gebe, es aber nicht portabel sei und wahrscheinlich außer AT-Festplatten nichts unterstützen werde.

    • Er sagte „wahrscheinlich wird es außer AT-Festplatten nichts unterstützen“, und heute installieren wir Linux auf Raumschiffen.
      Niemand weiß, wie weit ein Projekt gehen wird. Und wenn man es aus eigenen Gründen macht, ist das in gewisser Weise auch gar nicht wichtig.
    • Diese uralte Ankündigung zu lesen fühlt sich völlig verrückt an, und am Ende sind wir hier gelandet. Es ist auch erstaunlich, dass Linus das Projekt immer noch gewissenhaft führt, und inzwischen ist Linux das Basis-Betriebssystem des Internets. Die Serverräume fast aller großen Unternehmen bestehen größtenteils aus Servern, auf denen Linux oder interne Derivate davon laufen.
  • Eine so negative Stimmung auf HN gegenüber Browsern und dem offenen Web bin ich nicht gewohnt. Unabhängig davon, ob es gelingt, halte ich das für einen sehr wertvollen Versuch.
    Selbst wenn am Ende nur ein halb fertiger Browser herauskommt, der nicht von den Motiven großer Tech-Konzerne getrieben ist, könnte er nützlich sein, falls irgendwann der Moment kommt, in dem wir aufhören müssen, von Firefox abhängig zu sein. Ich mag Firefox sehr und hoffe, dass dieser Tag nie kommt, aber mir ist klar geworden, dass mein Browser beim Zugriff aufs Web eine Art Engpass ist. Es gibt andere Websites, auf denen ich dieselben Inhalte ansehen kann, und andere Computermarken, die ich nutzen kann, aber dazwischen steht immer Firefox. Es gibt zwar andere Browser, aber die meisten scheinen auf Googlium zu basieren, oder wie auch immer es heute heißt. Deshalb wünsche ich viel Glück und Erfolg und werde den RSS-Feed abonnieren, um gelegentlich einen Blick auf das Projekt zu werfen.

    • Ist es nicht fast schon der festgelegte Ablauf, dass, sobald auf HN ein Browser-Thread aufgemacht wird, etwa ein Dutzend hochgevoteter Antworten auftauchen, die behaupten, einen neuen Browser zu bauen sei unmöglich?
      Es gibt tatsächlich Belege dafür, dass es möglich ist. Ladybird wurde von Grund auf neu geschrieben, ursprünglich sogar inklusive eigener C++-Standardbibliothek, und nach drei bis vier Jahren Teilzeitarbeit läuft inzwischen sogar Discord, wenn auch langsam. Mittlerweile gibt es auch Vollzeitentwickler. GoSub scheint, wenn man sich cargo.lock ansieht, nicht alles von Grund auf implementieren zu wollen; Dinge wie Image-Decoder werden wahrscheinlich aus fertigen Komponenten kommen, sodass es das Potenzial hat, schneller zu wachsen.
  • Heute bedeutet „einen Browser von Grund auf schreiben“ im Grunde, ein portables Betriebssystem in einer Box zu implementieren, also die Web-Plattform nachzubauen und sie mit dem kompatibel zu machen, was Google seinem eigenen Browser hinzuzufügen beschließt.
    Browser haben einen riesigen Umfang an Funktionen und APIs, und es ist schwer, mit Googles ständigen Funktionsänderungen und seiner Dominanz Schritt zu halten; nicht einmal Microsoft hat das geschafft. Ein verwandtes persönliches Projekt ist Tersenet. https://github.com/runvnc/tersenet
    Es ist eher ein Konzept mit fast keiner Implementierung, aber die Anforderungen wurden bewusst so gewählt, dass Menschen es implementieren können. Es ist deutlich weniger komplex als ein vollständiger Webbrowser. Es gibt auch eine zugehörige Diskussion mit GPT-4. https://chat.openai.com/share/16d02b78-f876-4c87-949a-a60b4f...
    Ebenfalls relevant ist das tatsächlich existierende und praktische Gemini-Projekt. https://geminiprotocol.net/ Es hat die Tersenet-Idee inspiriert.

    • Nicht unbedingt. Wenn man den Umfang auf einen Hypertext-Dokumentenbetrachter beschränkt, wird es plötzlich machbar. Viele Funktionen wollte niemand, und sie werden auch nicht für etwas Gutes genutzt; das sind PWA-artige Funktionen.
      WebSQL, IndexedDB, Service Worker, WebGL, WebGPU, WebBluetooth, WebRTC und Ähnliches kann man einfach so behandeln, als gäbe es sie nicht. 99 % der echten Websites, also Seiten, die keine Web-„Apps“ sind, werden dadurch keine Funktionalität verlieren.
    • Ladybird ist ein sehr junges Projekt und entwickelt sich trotzdem in ziemlich gutem Tempo. Natürlich muss man berücksichtigen, dass der Hauptentwickler in diesem Bereich einiges an Erfahrung hat.
      Persönlich fände ich es gut, wenn es neben der Monokultur aus Blink und seinem Verwandten WebKit sowie Gecko/Quantum noch weitere alternative Engines gäbe. Etwas, das die Rolle einnimmt, die KHTML vor der Aufnahme in WebKit hatte, oder einfach eine weitere Open-Source-Option, mit der man experimentieren kann.
    • Zu sagen, man müsse mit allem kompatibel sein, was Google seinem Browser hinzufügt, geht zu weit. Es gibt viele bewundernswerte Menschen, die persönliche Homepages mit deutlich einfacherem HTML betreiben, und news.ycombinator.com wird gerade dafür geliebt, dass es sein klassisches Aussehen bewahrt.
      Ich fände es gut, wenn sich die vielen Menschen, die dieser Idee zustimmen, auf eine Teilmenge einigen würden, die sie nutzen wollen; ich könnte auch mit einem Browser zufrieden sein, der nicht alles macht, was Googles Browser tut. Ich schalte mit uMatrix einen großen Teil der Google-Funktionen ab und setze google.com-Domains nie auf die Allowlist, und nutze das geradezu als Beweis dafür, dass die Welt davon nicht untergeht. Die Zahl der Websites, die nicht funktionieren, ist vergleichsweise klein.
    • Warum muss man überhaupt das tun, was Google tut? Die meisten Websites halten sich an HTML und ECMAScript. Geht es bei diesem Projekt im Kern nicht darum, sich von dem, was Big Tech tut, abzukoppeln?
      Die große Mehrheit der Websites will sich nicht nach den Google-spezifischen, in letzter Zeit erfundenen Werbetechniken, AMP, DRM und Ähnlichem richten.
    • Fehlt dem Browser-Ökosystem für mehr Vielfalt nicht vielleicht eine modulare, unabhängige JavaScript-Runtime bzw. ein Interpreter, ähnlich wie bei Java? Für Java gibt es mehrere JVMs. https://en.wikipedia.org/wiki/List_of_Java_virtual_machines
      Vielleicht sollten Mozilla und andere eine unabhängige JavaScript-„VM“ bauen, die alle verwenden können.
  • Als jemand, der überhaupt nicht wusste, wie ein „echter“ Browser funktioniert, sich aber trotzdem entschieden hat, selbst einen Browser zu schreiben, inklusive eigener Layout-Engine, möchte ich einfach sagen: Mach es.
    Zu sehen, wie eine Website durch den eigenen Code gerendert wird, ist extrem befriedigend, egal wie chaotisch der Code oder die Ausgabe ist. Mein Projekt ist etwa zweieinhalb Jahre alt und rendert inzwischen HN und einfache Blogs einigermaßen. Ob es objektiv besser ist als w3m, das ich ursprünglich ersetzen wollte? Nicht unbedingt, deshalb kehre ich für manche Aufgaben noch zu w3m zurück. Trotzdem nutze ich es für Aufgaben, an die ich nie gedacht hätte, habe viel über Programmierung gelernt, und es ist einfach cool, dass es überhaupt funktioniert. https://sr.ht/~bptato/chawan

  • Einen Browser zu bauen bedeutet, eine Rendering-Engine und eine Layout-Engine zu bauen. Das ist nicht unmöglich, aber eine ziemlich große Aufgabe.
    Es gibt aber auch viele Dinge, die eher Früchte tragen können. Man könnte Servo auf den Nyxt Browser portieren oder WebKit/Servo/Gecko forken und die in den letzten zehn Jahren von Werbefirmen injizierten, für Nutzer schädlichen invasiven Webstandards entfernen. Wenn das ohnehin Dinge sind, die man beim Neubau von Grund auf erledigen müsste, ist es besser, nicht ganz unten anzufangen, sondern bei einer bestehenden Community, die bereits zur Zusammenarbeit bereit ist.

    • Deshalb habe ich WebKit genommen. https://github.com/tholian-network/retrokit Weil sich herausgestellt hat, dass Servo nicht mehr so modular ist wie früher.
      Gecko kommt der Definition eines Monolithen sehr nahe, sodass es unmöglich ist, die Angriffsfläche zu entfernen, und selbst Tor verwendet eine miserable Stub-Ersetzungsstrategie, die bei jeder Änderung interner APIs oder Bridges kaputtgeht. Allerdings ist es unmöglich, allein mit Upstream Schritt zu halten, daher braucht es Contributors und Maintainer. Aus Cybersecurity-Sicht habe ich die Angriffsfläche so weit wie möglich dokumentiert und notiert, was noch zu tun ist und was letztlich entfernt werden muss. https://github.com/tholian-network/retrokit/blob/main/SECURI...
      Ich möchte RetroKit als WebView für mein Browser Stealth verwenden, daher kann das ziemlich subjektiv sein. Browser Stealth funktioniert als Filter-Proxy, Scraper und dezentraler Cache. https://github.com/tholian-network/stealth Es wird derzeit in Go neu geschrieben.
    • Ich pflege eine Web-Layout-Bibliothek, die für die Integration in andere Software entwickelt wurde. https://github.com/DioxusLabs/taffy
      Sie muss mit Text-Layout-Engines wie https://github.com/pop-os/cosmic-text kombiniert werden und unterstützt noch nicht alle Funktionen. Typische derzeit fehlende Funktionen sind float, display: inline-block, box-sizing: content-box und position: static. Block, Flexbox und CSS Grid werden aber unterstützt, und es kommt noch mehr hinzu.
    • Es stimmt, dass es eine schwere Aufgabe ist, aber ich denke nicht, dass man deshalb aufgeben sollte. In gewisser Hinsicht ist es heute sogar leichter als früher. Denn inzwischen gibt es umfassende Standards.
      Es ist zwar eine große Sache, aber nicht unbedingt das Unmöglichste für ein kleines, engagiertes Team.
    • Müssen Rendering- und Layout-Engines von Anfang an alle ACID-Tests bestehen? Man kann sie doch schrittweise aufbauen.
      Man kann damit anfangen, halbwegs einfache HTML-Websites zu rendern, muss sich nicht beeilen, und es gibt keine strenge Regel, dass jeder Winkel des Standards implementiert werden muss. Webbrowser und das Web sind herrlich menschlich.
    • Nur wenn man alles von Grund auf schreiben will, muss man Rendering- und Layout-Engine selbst schreiben. Ein Browser ist vor allem eine nutzerseitige Anwendung, nicht das innere Räderwerk selbst.
      Man kann bestehende Engines nehmen, sie verbinden und so modularisieren, dass man sie jederzeit austauschen kann, und es ist immer noch ein richtiger Browser. Persönlich habe ich den Eindruck, dass sich die Leute hier zu sehr auf das innere Räderwerk konzentrieren; tatsächlich braucht es neben Rendering/Layout/Scripting auch bessere Interfaces und andere Komponenten.
  • Ich drücke die Daumen. Mach weiter.
    Ich habe einen sehr kleinen Teil des ORC-Solver-Algorithmus in Python implementiert und wxWidgets fürs Rendering verwendet. Um Textbreiten zu berechnen, habe ich die Text-Extent-API von wxWidgets genutzt. Das ORC-Solver-Whitepaper ist hier. https://yuejiang-nj.github.io/Publications/2020CHI_ORCSolver...
    Ich überlege, wie man Branch and Bound implementieren könnte, und fände entsprechende Informationen hilfreich. Für Satzalgorithmen sollte man sich wohl die TeX-Codebasis ansehen, und für Layout-Bin-Packing war es auch sehr interessant, die JavaScript-Bibliothek Masonry zu verwenden.

  • „Wenn ihr mein HTML wollt, gebe ich es euch! Sucht danach! Alles auf dieser Welt habe ich dort zurückgelassen.“
    „So machten sich die Hacker auf, ihrem Traum folgend zur HyperText Line, und die Welt trat in das wahre Große Browser-Zeitalter ein!“
    Jahrelang glaubte ich, Browser seien ein unüberwindbarer Berg, aber inzwischen scheinen immer mehr Menschen zu glauben, dass wir es schaffen können. Meine Zwei-Sekunden-Analyse: Diese Strömung ist sichtbar, weil die neuen Browser-Macher nicht die bestehenden riesigen Monster nachahmen und mit ihnen konkurrieren wollen, sondern das Web verändern wollen. Das gefällt mir.

  • Was den politischen Teil des Beitrags angeht: Die Welt ist kaputt, und nur kaputte Nachrichten zu lesen, ist ermüdend. Sich aber von der Realität abzukoppeln und „unpolitisch“ zu werden, heißt aus meiner Sicht, die Menschheit aufzugeben – also die eigenen Kinder und Nichten/Neffen sowie die Kinder der engsten Freunde aufzugeben.
    Man muss nicht gleich die Welt verändern; kleine Veränderungen in der eigenen Community reichen schon. Gerade als Coder können die Dinge, die wir bauen, Tausende Menschen weltweit beeinflussen und ihre Richtung ändern. Ich frage mich manchmal, ob die Lage anders wäre, wenn alle nur 3–5 % ihrer Zeit in Unterstützung der Community und irgendeine Form von Aktivismus investiert hätten.

    • Ich schaue überhaupt keine Nachrichten. 99 % davon sind voreingenommener Müll, oft nicht einmal wahr, und sie vergiften den Geist. Dadurch sind mein Leben und meine psychische Gesundheit deutlich besser geworden.
      Nichts, was ich in den Nachrichten lese, würde ändern, wie ich wähle – dabei wäre das eigentlich der beste Grund, Nachrichten zu verfolgen.
    • Bei Engagement in der Community stimme ich definitiv zu. Den Schnee vor dem Haus eines älteren Nachbarn wegzuschaufeln ist gut, weil man damit tatsächlich etwas tut.
    • Im Großen und Ganzen stimme ich zu. Vor ein paar Jahren habe ich beschlossen, keine Nachrichten mehr zu hören, aber das war, nachdem ich mich entschieden hatte, keine Kinder zu bekommen. Wenn Leute, die Kinder bekommen, sich die Ohren zuhalten, wirkt das falsch.
      Anders gesagt: Ich habe die Welt aufgegeben. Aber die Kinder anderer Leute sind nicht meine Verantwortung. Ich tue so viel wie andere, um „das Richtige“ zu tun, aber nicht mehr. Früher habe ich mir über solche Dinge Gedanken gemacht, versucht, meinen persönlichen Fußabdruck zu reduzieren, und über Nachhaltigkeit und künftige Generationen nachgedacht, aber ich habe die Hoffnung verloren. Es fühlte sich an, als würde man gegen die Strömung kämpfen. Jetzt versuche ich nur noch, meinen Fußabdruck nicht größer als den Durchschnitt werden zu lassen und gut zu den Menschen um mich herum zu sein.
    • Sich von der Nachrichtenindustrie abzukoppeln, bedeutet nicht automatisch, sich von der Realität abzukoppeln. Zumindest hoffe ich das. Ich konsumiere nicht-technische Nachrichten nur etwa einmal pro Woche.
  • Wenn Rust zwingend ist, wäre es vermutlich hilfreicher, zu Servo beizutragen und mit kleinen PRs zu lernen. https://github.com/servo/servo
    Allerdings kann ich es verstehen, weil ich selbst schon Projekte „von Grund auf“ gemacht habe, weil ich eine bestehende Codebasis schwer lesbar fand oder dachte, ich könnte es besser. Jeder hat eben seine eigene Art.

    • Eine Spielzeugversion eines Programms selbst zu schreiben, ist eine hervorragende Methode, die große Version zu verstehen.
    • Rust und Servo sind gemeinsam gestartet, deshalb gibt es in Servo viel Code aus der Zeit vor Rust 1.0, und dadurch sind manche Teile stilistisch nicht ideal.
      Ebenso wurde Servo dafür entworfen, Teile des Firefox-Browsers zu ersetzen, und musste deshalb in „Gecko-förmige“ Lücken passen. Zum Beispiel werden an mehreren Stellen UTF-16-Strings verwendet, um mit dem Rest von Firefox kompatibel zu sein. Heute könnte man Servo vielleicht mit modernem Rust neu schreiben und es kleiner, schlanker und vielleicht schneller machen.
    • Servo ist ein erstaunliches Projekt, und ich mag auch die Arbeit, die Mozilla geleistet hat, aber letztlich sind sie finanziell doch mit Google verflochten, oder?