
Die Entwicklung des Web im letzten Jahrzehnt spiegelt die Entwicklung der amerikanischen Wirtschaft wider. Alle Schlüsselindikatoren bewegen sich in den Charts nach oben und rechts. Ein stetiger Strom grundlegender Durchbrüche vermittelt ein Gefühl des „Fortschritts“, aber in Wirklichkeit stagnieren die Benutzerfreundlichkeit und die Auswirkungen der Technologie auf die Menschen oder bilden sich sogar zurück.
Diese Krise betrifft Plattformen, Entwickler und Verbraucher.
Ich werde versuchen, diese Situation ein wenig zu analysieren und zu diagnostizieren. Wenn Sie nur meine engstirnige, nicht professionelle Rede über die Notwendigkeit eines Neustarts des Webs lesen möchten, können Sie diesen Teil überspringen. Die Idee ist, dass wir ein neues leichtes Markup-Format (Markdown) wählen können, um HTML und CSS zu ersetzen, das Web in Webdokumente und -anwendungen zu unterteilen und die Geschwindigkeit, Zugänglichkeit und Interessantheit des Web wiederherzustellen.
Dieser Beitrag verwendet eine pedantische Definition von "Web". Ich habe bereits mehrmals über Versuche gesprochen, das "Internet" neu zu erfinden. Projekte wie dat, IPFS und arweave wurden konzipiert, um das Internet oder seine Transport- und Datentransportschichten neu zu erfinden. Über diesen Ebenen befindet sich das Web: HTML, CSS, URL, JavaScript, Browser.
Absturz von Plattformen
Letzte Woche gab es eine wichtige Plattformänderung - Mozilla entließ 250 Mitarbeiter und sagte, dies würde sich auf die Firefox-Entwicklung auswirken. Der Firefox-Browser war nicht der zweitbeliebteste Browser - Safari ist hauptsächlich auf das "erzwungene" Publikum von iPhone- und iPad-Besitzern zurückzuführen. Es war jedoch der beliebteste Browser, den die Leute gewählt haben .

Diagramm von statcounter
Der wahre Gewinner war nicht Chrome selbst, sondern die Chrome-Engine. Eine KHTML- Codebasis, die in WebKit (Safari) und Blink (Chrome, Microsoft Edge, Opera usw.) unterteilt ist.
In der Praxis sieht die Lehrbuchdefinition von "Monokultur" so aus. Einerseits ist dies ein Sieg in Bezug auf die Zusammenarbeit, da niemand Zeit mit konkurrierenden Implementierungen verschwenden muss und Webentwickler in allen Browsern denselben Funktionen und Fehlern ausgesetzt sind. In einem tieferen Sinne bedroht es jedoch die Grundprinzipien der Entwicklung des Web.
Spezialisierungen und Implementierungen

Das Web hat sich durch die Kombination von Spezifikationen und Implementierungen weiterentwickelt . Organisationen wie WHATWG , W3C und IETF waren Orte, an denen unabhängige Entwickler, Unternehmen und Wissenschaftler zusammenarbeiten konnten, um das Potenzial neuer Webfunktionen zu erörtern. Browser haben ihre Ideen an vielen verschiedenen Implementierungen getestet.
Es war ein interessanter Teil der Struktur: ein solches System gewährleistet , dass alle von uns konnten gemeinsam entwickeln, und dass eines unserer Ziele war es , das Web für viele Mitwirkende beitragen zu können. Es hat uns verärgert, wenn wir auf Caniuse sindEs erschienen leere Zellen, aber die allgemeine Idee war, dass verschiedene Browser, auch wenn sie in verschiedenen Aspekten besser sind, früher oder später einander einholen. Chrome war nicht der erste Browser, der neue Funktionen und Optimierungen einführte.
Die Zusammenarbeit ist langsamer als die alleinige Arbeit, bringt jedoch Vorteile mit sich, die wir heute verloren haben. Chrome hat sich extrem schnell weiterentwickelt und neue Spezifikationen und Ideen mit unglaublicher Geschwindigkeit hinzugefügt. Es ist zu einem der am schwierigsten zu erstellenden Softwareprodukte geworden.
Es scheint mir, dass Mike Healy es am besten ausgedrückt hat :
Denken Sie nicht, dass das Web in Bezug auf die Komplexität praktisch "monopolisiert" ist, wenn die Rendering-Engines dafür nur eine oder zwei Organisationen erstellen können?
Heutzutage ist es nicht nur fast unmöglich, einen neuen Browser von Grund auf neu zu erstellen. Wenn Sie dies tun, erfordert der ständige Wettlauf um die Implementierung neuer Standards ein ganzes Team von Spezialisten. Sie können dies in Drew DeWalts Artikel lesen. Webbrowser müssen aufhören . Ich empfehle auch, seine anderen Materialien zu lesen.
Herausforderung für Schöpfer
Es ist für das Web viel schwieriger geworden, es zu entwerfen.
Das Internet ist erst seit 25 Jahren gewachsen, hatte nur sehr wenige Möglichkeiten zu schrumpfen und steht heute unter dem Einfluss einer äußerst kurzsichtigen Kultur des Wirtschafts- und Karrierewachstums ohne langfristige Pläne. Es gibt viele Möglichkeiten, etwas zu implementieren, und einige der beliebtesten Möglichkeiten, Anwendungen im Web zu erstellen, sind meiner Meinung nach normalerweise extrem überaus leistungsfähig.
Der beste Weg, um im Jahr 2020 in die Webentwicklung einzusteigen, besteht darin, eine Nische wie Vue.js oder React auszuwählen und zu hoffen, einen CSS-Experten im Team zu haben.
Es gibt eine verwirrende Reihe von Technologien für diejenigen, die nur eine Webseite erstellen möchten, anstatt in die Branche einzusteigen, aber die einfachsten und wahrscheinlich besten von ihnen sind stigmatisiert. Es ist wahrscheinlicher, dass Benutzer React-Lebensläufe mit GraphQL schreiben, als HTML in Notepad eingeben.
Ein Problem für die Verbraucher
Wir hoffen, dass alle Innovationen zum Wohle des Benutzers geschaffen werden , aber oft ist dies nicht der Fall. Es sieht so aus, als wären moderne Websites die größten, langsamsten und fehlerhaftesten in der Geschichte des Web. Unsere Computer werden kaum schneller und unsere Internetverbindungsgeschwindigkeiten stagnieren ( versuchen Sie nicht einmal , etwas über 5G zu sagen). Das Wachstum der Größe von Webseiten übertrifft das Wachstum aller anderen Parameter.
Aus diesem Grund erwarte ich nicht mehr, dass die Seiten schnell sind, selbst wenn uBlock in Firefox und einem guten lokalen Glasfaseranbieter installiert ist .
Aber ich möchte diesen Webentwicklern nicht für alles die Schuld geben.... Ich kann eine ziemlich lustige Geschichte von meinem früheren Arbeitsplatz erzählen. Wir haben Daten zur Benutzerinteraktion mit Websites gesammelt, um einfache Fragen wie "Klicken Benutzer auf eine Schaltfläche, um Dateien auf den Server hochzuladen, oder verwenden sie Drag & Drop?" Zu beantworten. Daher haben wir Segment verwendet , ein Tool, mit dem Sie Datenerfassungs-Pipelines mithilfe eines einfachen Skripts hinzufügen können. Das Problem war jedoch, dass das Segment eine riesige Seite mit Hunderten von Datenanbietern und Werbetechnologieunternehmen hatte. Und natürlich haben die Leute, die in der Firma geschäftlich tätig sind, angefangen , auf all diese Schaltflächen zu klicken .
Sie sehen, das Problem mit Werbung und Datenverfolgung ist, dass all dies getan werden kann, aber wer wird es ablehnen? (In unserem Fall habe ich mich abgemeldet und einen CSP hinzugefügt , der neue Werbetreibende daran hindert, auf die Seitenebene zuzugreifen.)
Eine Rückkehr zur Einfachheit
Es ist unmöglich, zu einem einfachen System zu gelangen, indem man einem komplexen System Einfachheit hinzufügt. - Richard O'Keeffe
Wohin gehen wir als nächstes? Die klügsten Leute schlagen vor, dass wir eine Überarbeitung der Webversionen arrangieren .
Wie machen wir das Web interessant, kollaborativ und gut?
Zuerst dachte ich, es gäbe zwei Websites:
Webdokumente

Es gibt "Webdokumente": Blogs, Nachrichten, Wikipedia, Twitter, Facebook. Soweit ich weiß, ist dies das Web, wie es ursprünglich gesehen wurde (ich war damals zwei Jahre alt). CSS, das wir jetzt als Werkzeug sehen, mit dem Designer Marken-Einzigartigkeit schaffen und pixelgenaue Details hinzufügen können, wurde ursprünglich als eine Möglichkeit angesehen, Dokumente ohne Formatierung lesbar zu machen, sodass Leser dieser Dokumente ihr Erscheinungsbild anpassen können. Tatsächlich wurde dieses Attribut für eine Weile in Chrome als benutzerdefinierte Stylesheets gespeichert und funktioniert weiterhin in Firefox . Im heutigen Web wird dies jedoch eine entmutigende Aufgabe sein, da er die Idee des semantischen HTML effektiv aufgegeben hat .
Web Applikationen"

Und dann gibt es "Webanwendungen". Es begann als serverseitige Anwendungen, die auf Django und Ruby on Rails aufbauen . Vor ihnen gab es viele Technologien, die jetzt für immer in Unternehmen leben werden, wie beispielsweise Java-Servlets .
Backbone.js hat gezeigt, dass viele dieser Anwendungen auf den Browser portiert werden können. Danach haben React und viele seiner SPA-Konkurrenten eine neue Weltordnung für die Web-Client-Anwendungen mit einem hohen Maß an Interaktivität und Komplexität geschaffen.
Krieg zwischen Teilen des Netzes
Ich behaupte, dass es diese duale Natur ist, die die Magie des Webs erzeugt. Es ist aber auch eine zerstörerische Kraft.
Die Magie ist, dass ein einfacher Blog ein kreatives Medium sein kann, eine großartige interaktive Möglichkeit, sich auszudrücken. Meine Seite ist nicht so, aber ich sage nur, dass es möglich ist .
Das Problem ist, dass „Webdokumente“ häufig unter Anwendungseigenschaften leiden - JavaScript und Animation, deren Komplexität die durchschnittliche Nachrichtenwebsite zu einer Katastrophe macht. Wenn Dokumentwebsites Anwendungsmuster übernehmen, werden häufig versehentlich Zugänglichkeit, Geschwindigkeit und Maschinenlesbarkeit beeinträchtigt.
Und "Webanwendungen" leiden unter Dokumentmerkmalen - interaktive Anwendungen sind sehr bemüht, die meisten grundlegenden Merkmale von HTML und CSS zu vermeiden, und verwenden sie nur als Rohstoffe. Sie vermeiden das direkte Schreiben von HTML, das Schreiben von CSS , das Vermeiden von Standardanimationsfunktionen und das Ersetzen paginieren Sie zu etwas, das ähnlich aussieht, aber völlig anders funktioniert . Webanwendungen verwenden JSX gegenüber HTML und bevorzugen es, im Browser selbst damit umzugehen, oder verwenden Svelte gegenüber JavaScript und bevorzugen es auch.
Wenn ich die Blog-Beiträge von „traditionellen Webentwicklern“ lese, die sauer sind, dass HTML und CSS heute nicht genug sind und die Dinge so komplex geworden sind, denke ich, dass dies hauptsächlich darauf zurückzuführen ist, dass der Anwendungsentwicklungsstapel vielerorts beim Aufbau des Webs liegt -sites ersetzte den Dokumenterstellungsstapel. Überall dort, wo wir Jekyll oder Site-Side-Rendering verwendet hätten, wird jetzt React oder Vue.js angewendet. Dieser Ansatz bietet Vorteile, aber für viele Websites mit minimaler Interaktivität bedeutet dies, jahrzehntelanges Wissen aufzugeben, um einige Geschwindigkeitsvorteile zu erhalten, die möglicherweise nicht einmal von Bedeutung sind.
Der Reiz der sozialen Medien
Die Attraktivität von Social Media beruht zum Teil auf der Tatsache, dass wir damit Dokumente erstellen können , ohne über Webtechnologie nachzudenken, und Garantien für Geschwindigkeit, Zugänglichkeit und Perfektion bieten, die ohne Social Media viel Zeit in Anspruch nehmen würden. Wir müssen uns keine Sorgen machen, dass Facebook-Posts schnell auf die Telefone von Freunden geladen werden oder ein Foto auf Instagram korrekt bearbeitet und veröffentlicht wird - all das wurde für uns erledigt.
Bis zu einem gewissen Grad sind hierfür keine Social-Media-Funktionen erforderlich : Standards wie RSS und Dienste wie Instapaper zeigen, dass eine schöne Formatierung und Verteilung auf Plattformebene möglich ist. und bauen auf bestehenden Vanille-Websites auf.
Es gibt jedoch keine klare Trennung
, - : ! , , -, , , («» JavaScript -), , . , , . : , , , .
Webdokumente 2.0
Natürlich wäre es großartig, eine einheitliche Theorie des neuen Webs zu implementieren, die genügend Anwendungsmerkmale und Dokumenteigenschaften aufweist, um alle hybriden interaktiven Dokumente zu erstellen, mit denen wir heute arbeiten. Aber der Weg zum geteilten Web ist für uns klarer, und ich habe zuerst darüber nachgedacht, also lassen Sie uns ein wenig darüber sprechen.
- Regel 1 - Erstellen Sie keine Teilmengen . Wenn der Ersatz des Webs nur die Funktionen sind, die vor zehn Jahren in Firefox 10 vorhanden waren, wird diese Version niemandem gefallen.
- №2 — . , , , - , .
- №3 — . , : , , , , , , .
Nehmen wir also an, wir erstellen ein neues Webdokument.
Erstens benötigen wir eine minimale, standardisierte Auszeichnungssprache, um Dokumente zu kommunizieren. Wir werden wahrscheinlich mit einer einfachen Markup-Sprache beginnen wollen, die auf die HTML-Generierung zugeschnitten ist. Ein strenger Markdown- Geschmack namens Commonmark scheint eine ziemlich gute Wahl zu sein . Dies ist die Sprache, in der ich alle meine Beiträge geschrieben habe, die in meiner Familie am beliebtesten sind. Es gibt viele großartige Parser für Markdown und ein großes Ökosystem an Werkzeugen.
Als nächstes brauchen wir einen Browser. Mozilla arbeitet seit langem an einem brandneuen Browser - Servo... Das Entwicklungsteam wurde letzte Woche entlassen, was traurig ist. Dieses Projekt umfasst unabhängige Rust-Frameworks zum Rendern von Schriftarten sowie eine High-End- Markdown-Implementierung in Rust und eine ständig wachsende Anzahl fantastischer Anwendungsframeworks . Ist es möglich, einen reinen Markdown-Browser zu erstellen, der diese Pipeline direkt verwendet? Kann sein?
Ich glaube, dass eine solche Kombination es uns ermöglichen wird, die verlorene Geschwindigkeit weitgehend wiederherzustellen. Im Vergleich zum modernen Web könnten wir in einem Bruchteil der Zeit eine Seite zum Screenen bringen. Der Speicherverbrauch kann winzig sein. Das Standardsystem wird unglaublich zugänglich sein. Sie können gut aussehende Standard-Stylesheets erstellen und alternative benutzerdefinierte Stylesheets freigeben. Dank des deutlich reduzierten Volumens können wir das System auf alle Arten von Geräten portieren.
Wie sehen die Website-Bearbeitungstools aus (was wahrscheinlich das wichtigste ist)? Sie können viel einfacher sein.
Wie würde die Aggregation aussehen? Wenn Webseiten eher Dokumenten als Anwendungen ähneln würden, würden wir kein RSS benötigen - Websites hätten einen Index, der auf Dokumente verweist, und ein „Leser“ könnte die Webseiten standardmäßig selbst aggregieren.
Wir könnten die beiden Web-Verbindungen mithilfe einer bekannten Datenprotokolldatei verbinden oder den Accept-Header verwenden , um einen Browser zu erstellen, der HTML versteht, aber leichtgewichtige Seiten bevorzugt.
Webanwendungen 2.0
Ich habe das Gefühl, dass bei jedem Webproblem, das ich erwähne, automatisch geantwortet wird, dass WebAssembly es beheben kann. Könnte es so sein?
Weiß nicht. WebAssembly ist eigentlich eine großartige Sache, aber sollten Web-Apps nur auf Leinwand gerendert werden und jede App ihr eigenes grafisches Toolkit zeichnen? Brauchen wir wirklich Unterschiede bei der Implementierung von Anti-Aliasing in Webanwendungen? Es gibt zwar containerisierte Anwendungen, werfen Sie einen Blick auf Qubes , aber sie sind nicht wirklich das, was Benutzer anstreben sollten. Jeder, der Blender oder Inkscape auf einem Mac verwendet hat, hat eine ungefähre Vorstellung davon, wie es aussehen würde.
Oder könnte WebAssembly der neue "Kern" werden und trotzdem das UI-HTML rendern? Oder ... wir können eine gemeinsam genutzte verknüpfte Bibliothek erstellen, die von WebAssembly-Anwendungen verwendet wird. Es würde ähnlich wie SwiftUI funktionieren und anwendungsfreundliche Standards wie Einschränkungen anstelle von Konzepten wie Zeilenhöhe und Gleitkommazahlen in Dokumenten bereitstellen.
Das Problem bei der Gestaltung des Konzepts von Webanwendungen besteht darin, dass es stark wächst.
Je schlechter der Mac App Store, der Windows App Store, der App Store und der Play Store werden, je mehr diese Monopole verlangen, desto mehr Kosten kostet es, ein Mac- oder Windows-Entwickler zu sein, desto mehr werden diese Anwendungen ins Web verschoben. Sicher sind einige Apps besserim Internet. Aber viele gehen einfach dorthin, weil es der einzige verbleibende Ort ist, an dem das Produkt einfach, billig und frei verteilt oder verkauft werden kann.
Es war einmal, wir konnten Anwendungen installieren, ihnen die ausdrückliche Zustimmung geben, auf einem Computer ausgeführt zu werden, und unsere Hardware verwenden. Diese Zeit neigt sich dem Ende zu und Webseiten bieten heutzutage ziemlich ausgefeilte Möglichkeiten, Informationen zu erhalten, von Webcams, Dateien, Gamecontrollern, Audiosynthese bis hin zur Kryptographie und allem, was einst der Bereich der Möglichkeiten
.exeund Möglichkeiten war .app. Dies gibt natürlich neue Kraft, aber die Situation ist eher ungewöhnlich.
Wer arbeitet daran?
- Beaker Browser — dat , .
- Project Gemini — -. ( .)
- taizen — . , .
?
Es gibt viele mögliche Ansichten zu diesem Problem und Möglichkeiten, es zu lösen. Ich glaube, das ist tatsächlich ein Problem (für alle außer Google). Die Idee eines Webbrowsers als etwas, das wir verstehen können , Webseiten als etwas, das mehr Menschen erstellen können , scheint mir erstaunlich.
Der Abschriftenansatz erscheint sehr realistisch. Ich denke, das stärkste Argument dagegen ist, dass es "all die interessanten Dinge aus dem Web saugt", und das ist teilweise richtig. Das frühe Web war jedoch in unserem üblichen Sinne nicht interessant - dort konnten wir keine Kunst schaffen oder für etwas anderes als den Austausch von Dokumenten verwenden. Aber es war unglaublich interessant, weil es interessant ist, Informationen auszutauschen, und dort könnte es auf einfache und universelle Weise geschehen. Daher ist es am wichtigsten, die Elemente zu finden, die die Möglichkeiten eines solchen Plans freisetzen, sofern sie natürlich existieren. Oder finden Sie einen anderen Plan, der "interessant genug sein wird".
Social Media ist tendenziell restriktiver als Webseiten, aber auch ansprechender.aus einer Vielzahl wichtiger Gründe, von denen der wichtigste die Möglichkeit ist, dass viel mehr Menschen teilnehmen. Was wäre, wenn der Rest des Webs so einfach und unmittelbar wäre, ohne so zentralisiert zu sein? Was wäre, wenn wir von vorne anfangen könnten?
Werbung
Epische Server sind virtuelle Server zum Hosten von Websites, von einem kleinen WordPress-Blog bis hin zu seriösen Projekten und Portalen mit einer Million Zuschauern. Eine breite Palette von Tarifplänen ist verfügbar, die maximale Konfiguration beträgt 128 CPU-Kerne, 512 GB RAM, 4000 GB NVMe!
