Was ist die Zukunft der Frontend-Webentwicklung?

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Vor kurzem wurde ich gebeten, eine kleine Sitzung dazu zu halten. Ich würde sagen, ich bin für die Beantwortung dieser Frage nicht qualifiziert, genauso wie jede einzelne Person. Wenn Sie wirklich fundierte Antworten auf diese Frage benötigen, würden Sie wahrscheinlich aggregierte Daten aus Umfrageergebnissen vieler Entwickler heranziehen.

Ich bin jedoch *ein wenig* qualifiziert. Abgesehen davon, dass ich diese Seite betreibe, was erfordert, dass ich jeden Tag über Frontend-Entwicklung nachdenke und mich mit vielen Gesprächen über Frontend-Entwicklung beschäftige, bin ich selbst ein aktiver Entwickler. Ich arbeite bei CodePen, das ein ziemlicher Tummelplatz für Frontend-Entwickler ist. Außerdem spreche ich jede Woche im ShopTalk Show mit einer Vielzahl von Gästen darüber und reise auf Konferenzen, die sich größtenteils auf Frontend-Entwicklung konzentrieren.

Also lassen Sie mich einen Versuch wagen.

Nochmal, Haftungsausschlüsse

  1. Dies ist nicht umfassend
  2. Dies sind nur lose Vermutungen
  3. Ich bin nur ein Kerl

Benutzererwartungen steigen.

Dies ebnet den Weg

Die Anforderungen an Websites steigen. Entwickler werden gebeten, sehr komplizierte Dinge sehr schnell zu bauen und sicherzustellen, dass sie sehr gut und sehr schnell funktionieren.

Neues JavaScript ist da.

So fabelhaft jQuery für uns auch war, für neue Entwicklungen ist es vorbei. Und ich meine nicht nur, dass uns ES6+ jetzt zur Verfügung steht, obwohl das stimmt. Wir haben uns damit in Schwierigkeiten gebracht, indem wir zu direkt mit dem DOM gearbeitet und es wie einen Datenspeicher behandelt haben. Wie ich anfangs sagte, steigen die Erwartungen der Benutzer und damit die Komplexität. Wir müssen diese Komplexität bewältigen.

State ist das große Konzept, wie wir besprochen haben. Websites werden durch die Überlegung gebaut, welcher State verwaltet werden muss, und dann werden die richtigen Stores für diesen State erstellt.

Die neuen Frameworks sind da. Ember, React, Vue, Angular, Svelte, was auch immer. Sie unterstützen die Idee, mit State, Komponenten zu arbeiten und das DOM für uns zu verwalten.

Jetzt können sie in Bezug auf Geschwindigkeit, Funktionen und API-Schönheit konkurrieren.

TypeScript scheint ebenfalls ein langfristiger Gewinner zu sein, da es mit allem kompatibel ist und Stabilität sowie eine bessere Editor-Erfahrung für Entwickler bietet.

Wir bauen keine Seiten, wir bauen Systeme.

Styleguides. Designsysteme. Pattern Libraries. Diese Dinge werden zu einem Standardbestandteil von Webprojekten. Sie werden wahrscheinlich zum Hauptergebnis. Ein System kann alles Notwendige erstellen. Das Konzept der „Seiten“ verschwindet. Komponenten werden zusammengesetzt, um das zu erstellen, was Benutzer sehen. Dieses Zusammensetzen kann von UX-Experten, Interaktionsdesignern, sogar vom Marketing übernommen werden.

Neues JavaScript unterstützt dies sehr gut.

Die Grenze zwischen Native und Web verschwimmt.

Was ist besser, Sketch oder Figma? Wir beurteilen sie nach ihren Funktionen, nicht danach, dass die eine eine native App und die andere eine Web-App ist. Sollte ich die native Slack-App oder TweetDeck-App verwenden oder einfach einen Tab öffnen? Es ist sowieso identisch. Manchmal ist eine Web-App so gut, dass ich wünschte, sie wäre nativ, nur damit sie ein Symbol in meinem Dock hat und eine persistente Anmeldung bietet, daher verwende ich Dinge wie Mailplane für Gmail und Paws für Trello.

Ich benutze regelmäßig Apps, die meiner Meinung nach native Apps sein müssten, aber sich als genauso gut oder besser im Web erweisen. Allein wenn man sich Audio-/Video-Apps ansieht: Skype hat eine voll funktionsfähige App, Lightstream ist ein vollwertiges Livestreaming-Studio und Zencaster kann mehrspurige hochwertige Audioaufnahmen machen. All das geschieht direkt im Browser.

Das sind nur Beispiele für *gute Arbeit* im Web. Die Webtechnologie selbst macht hier ebenfalls enorme Fortschritte. Service Worker geben uns wichtige Dinge wie Offline-Fähigkeit und Push-Benachrichtigungen. Web Audio API. Web Payments API. Das Web sollte die dominante Plattform für den Aufbau von Apps werden.

Benutzer werden Dinge nutzen, die gut sind, und nicht überlegen oder sich darum kümmern, wie sie erstellt wurden.

URLs sind immer noch ein Killer-Feature.

Das Web hat das wirklich gut hinbekommen. Eine universelle Möglichkeit zu haben, direkt zu einer bestimmten Sache zu springen, ist unglaublich. URLs machen Suchmaschinen möglich, möglicherweise eine der wichtigsten menschlichen Erfindungen überhaupt. URLs machen das Teilen und Lesezeichensetzen möglich. URLs sind eine faire Spielwiese für Marketing. Jeder kann eine URL besuchen, es gibt keinen Gatekeeper.

Leistung ist ein wichtiger Faktor.

Die Toleranz für schlecht funktionierende Websites wird sinken. Jeder wird erwarten, dass alles nahezu sofort funktioniert. Seiten, die das nicht tun, werden peinlich sein.

CSS wird viel modularer werden.

Wenn wir Stile schreiben, werden wir immer eine Wahl treffen. Sind das globale Stile? Lecke ich absichtlich diesen Stil über die gesamte Website? Oder schreibe ich CSS, das spezifisch für diese Komponente ist? CSS wird zwischen diesen beiden geteilt. Komponentenspezifische Stile werden gekapselt und mit der Komponente gebündelt und bei Bedarf verwendet.

CSS-Präprozessoren werden langsam verschwinden.

Viele der Killer-Funktionen von Präprozessoren haben es bereits in CSS (Variablen) geschafft oder können besser durch fortgeschrittenere Build-Prozesse (Imports) gehandhabt werden. Die Werkzeuge, die wir letztendlich zur Modularisierung und Kapselung unseres CSS verwenden werden, sind immer noch, in gewisser Weise, CSS-Präprozessoren, sodass sie die Arbeit der verbleibenden Notwendigkeit der Präprozessoren übernehmen könnten. Von den Standard-Präprozessoren der aktuellen Generation denke ich, dass wir am meisten Mixins vermissen werden. Wenn natives CSS Mixins (@apply) und Extends (@extend) implementieren würde, würde dies die Abschaffung der heutigen Präprozessoren beschleunigen.

Gut in HTML und CSS zu sein, bleibt entscheidend.

Die Art und Weise, wie HTML aufgebaut wird und wie es im DOM landet, wird sich weiter ändern. Aber Sie müssen immer noch wissen, wie gutes HTML aussieht. Sie müssen wissen, wie Sie HTML so strukturieren, dass es für Sie nützlich, für Benutzer zugänglich und für die Gestaltung geeignet ist.

Die Art und Weise, wie CSS im Browser landet und wie es angewendet wird, wird sich weiter ändern, aber Sie müssen immer noch wissen, wie man es benutzt. Sie müssen wissen, wie Sie Layouts erstellen, Abstände verwalten, Typografie anpassen und geschmackvoll sein, wie wir es immer getan haben.

Build-Prozesse werden wettbewerbsfähig.

Da die Leistung so wichtig ist und es so viele Möglichkeiten gibt, klug mit der Leistung umzugehen, werden wir Innovationen bei der Bereitstellung unserer Codebasen für die Produktion sehen. Tools wie webpack (Tree Shaking, Code Splitting) leisten hier bereits viel, aber es gibt noch viel Raum, damit automatisierte Tools Magie auf die Auslieferung unseres Codes an Browser wirken. Optimierung der ersten Ladevorgänge. Auslieferung von Assets in der Reihenfolge ihrer Kritikalität. Entscheidung, was wohin und wie gesendet wird. Nichts wird ausgeliefert, was nicht verwendet wird.

Mit der Weiterentwicklung der Webplattform (z. B. Client Hints) werden sich die Build-Prozesse und Best Practices wie immer weiterentwickeln.