Wir haben Web-Entwickler, die wir bewundern, dieselbe Frage gestellt: Was ist eine Sache, die Sie dieses Jahr beim Erstellen von Websites gelernt haben? Hier ist, was sie uns erzählt haben.

Wir möchten unserem ❥ Sponsor Automattic dafür danken, dass diese Seite möglich ist. Sie stellen viele großartige Softwareprodukte her, die wir nutzen, wie Jetpack, WooCommerce und WordPress.com.

Jeremy Wagner sagt

Recognizing Constraints

Es gibt ein "Sch" im Web-Development, dem wir nicht genug Aufmerksamkeit schenken. Nein, ich spreche nicht von "kontinuierlicher Integration" oder gar "CSS". Das "Sch", von dem ich spreche, sind "Beschränkungen". Das Verständnis von Beschränkungen ist ein entscheidender Teil des Aufbaus von Software, die in ihrer/ihren Zielumgebung(en) bestmöglich funktioniert. Doch die Schwierigkeit dieser Aufgabe variiert je nach den Systemen, für die wir entwickeln.

Super Nintendo-Spiele waren der Hit des Jahrzehnts, als ich jünger war, und es gibt kein besseres Beispiel dafür, wie man Unglaubliches innerhalb vergleichsweise bescheidener Einschränkungen schafft. Entwickler von SNES-Titeln waren unter anderem auf Folgendes beschränkt:

  • 16-Bit-Farben.
  • 8-Kanal-Stereoausgabe.
  • Module mit Speicherkapazitäten, die in Megabits gemessen wurden, nicht in Megabytes.
  • Begrenzte 3D-Rendering-Fähigkeiten bei ausgewählten Titeln, die einen speziellen Chip im Modul integriert hatten.
SNES Cartridge for Secret of Mana

Trotz dieser Einschränkungen lieferten Spieleentwickler unglaubliche und unvergessliche Titel, die unser Leben überdauern werden. Doch die Beschränkungen, mit denen SNES-Entwickler konfrontiert waren, waren statisch. Es gab eine einzige Plattform mit einem einzigen Satz von Fähigkeiten. Wenn man innerhalb dieser Fähigkeiten bleiben und deren Potenzial maximieren konnte, konnte sein Spiel von jedem mit einer SNES-Konsole gespielt – und geliebt – werden.

PC-Spiele hingegen mussten innerhalb eines flexibleren Rahmens von Beschränkungen entwickelt werden. Ich erinnere mich, dass eines meiner ersten PC-Spiele seine Bandbreite an Systemanforderungen an der Seite der Box aufwies:

  • Mindestens ein 386er-Prozessor – aber Pentium wird bevorzugt.
  • Ad Lib oder PC-Lautsprecher unterstützt – aber Sound Blaster ist am besten.
  • Mindestens 4 Megabyte RAM – aber mehr ist besser.
Software box for Hexen

Wenn man damals kein erstklassiges System hatte, konnte man trotzdem ein angenehmes Erlebnis haben, auch wenn es in gewisser Weise eingeschränkt war.

Konsolen- und PC-Spieleentwicklung sind großartige Beispiele für statische und variable Beschränkungen, jeweils. Das eine erzwingt die Akzeptanz einer einzigen Hardwarekonfiguration zur Teilnahme, während das andere die Teilnahme an einer Vielzahl von Hardwarekonfigurationen mit einem Leistungsgradienten ermöglicht.

Kommt das bekannt vor?

Web-Entwickler haben wohl die schwierigsten Beschränkungen zu bewältigen. Das liegt daran, dass wir drei unterschiedliche Variablen in Einklang bringen müssen, um schnelle Websites zu erstellen:

  1. Das Netzwerk.
  2. Das Gerät.
  3. Der Browser.

Mit jedem vergangenen Jahr gewinne ich mehr Verständnis dafür, wie schwierig es ist, innerhalb dieser Beschränkungen zu arbeiten. Das ist eine Lektion, die ich bei jedem Projekt, jedem Kunden und jeder neuen Technologie, die ich bewerte, immer wieder lerne.

Mit den Beschränkungen des Webs umzugehen, ist eine *harte Arbeit*. Der Teil von mir, der sich darüber ärgert, wie viel JavaScript wir ausliefern, hat Schwierigkeiten zu wissen, wo die Grenze gezogen werden soll, wann zu viel zu viel ist. Die Entwicklererfahrung spielt eine Rolle bei unserer täglichen Arbeit, und wir brauchen gerade genug davon, um die Dinge reibungslos laufen zu lassen, aber auch ohne die Benutzererfahrung zu beeinträchtigen. Denn, wie uns unsere Grundlagendokumente sagen, stehen die Nutzer an erster Stelle.

Was habe ich also dieses Jahr *gelernt*?

Dasselbe, was ich jedes Jahr *wieder* lerne, nur jedes Mal auf subtil andere Weise: Unsere Technologieentscheidungen sind mit Kosten und Kompromissen verbunden. Dieses Jahr habe ich – deutlich und unmissverständlich – neu gelernt, wie unsere Technologieentscheidungen uns in Architekturen einschließen können, die sowohl die Benutzererfahrung schädigen können, wenn wir nicht vorsichtig sind, *als auch* zunehmend schwer zu durchbrechen werden, wenn wir müssen.

Eine weitere Erkenntnis ist, dass die Nutzung der Plattform harte Arbeit ist. Doch je mehr ich sie nutze, desto stärker wird mein Verständnis für ihre Abstraktionen. Die direkte Nutzung der Plattform ist nicht immer der beste oder skalierbarste Weg zu arbeiten, aber ihre regelmäßige Nutzung, anstatt einfach jedes Paket zu installieren, das gerade meinen Bedürfnissen entspricht, hilft mir, die Funktionsweise des Webs auf einer tieferen Ebene zu verstehen. Das ist wertvolles Wissen, das sich im Laufe der Zeit auszahlt, und ohne es wird Ihre Fähigkeit, nützliche Abstraktionen zu erstellen, schwieriger.

Schließlich habe ich dieses Jahr wieder einmal gelernt, dass unsere Beschränkungen *variabel* sind. Es ist akzeptabel, wenn *manche Dinge* nicht überall so gut funktionieren, wie sie sollten – aber wir müssen sehr darauf achten, welche *Dinge das sind*. Wie akzeptabel diese Versäumnisse unserer Verantwortung gegenüber der Öffentlichkeit sind, hängt von der Funktion ab, die wir erfüllen. Wenn es sich um eine auch nur annähernd wichtige Funktion handelt, müssen wir mit äußerster Sorgfalt und Rücksicht auf die Nutzer vorgehen. Wenn uns dieses Jahr der steigenden Arbeitslosigkeit und des Fernlernens etwas gelehrt hat, dann dass das Internet mehr als nur für den Handel da ist.

Meine Hoffnung ist, dass das Web im Jahr 2021 adaptiver wird als in den Vorjahren. Ich hoffe, dass wir die gleichen Erwartungen an die Benutzererfahrung stellen, die wir hatten, als wir Kinder waren und PC-Spiele spielten – dass eine Erfahrung in ihrer Wiedergabetreue variieren kann, um langsamere Systeme zu berücksichtigen –, und das ist etwas vollkommen in Ordnung für das Web. Es ist sicherlich flexibler, als von jedem zu erwarten, dass er mit der exakt gleichen Erfahrung zurechtkommt, egal ob auf einem iPhone 12 oder einem Android Go-Handy.