Komplexität

Avatar of Chris Coyier
Chris Coyier am

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

Frank Chimero hat einen neuen Vortrag als Essay veröffentlicht, Alles Einfache ist wieder Schwer.

Mögen wir alle eines Tages so wunderbar selbstreflektierend und eloquent sein wie Frank. Da gibt es viel zu lesen, also bitte lesen Sie es. Ein Teil des Themas ist, dass Webdesign und -entwicklung scheinbar repetitive Zyklen haben, die selbst recht erfahrene Leute die Leiter wieder nach unten stoßen können.

Ich fühle mich nach 20 Jahren nicht viel besser darin, [Websites] zu erstellen. Mein Wissen und meine Fähigkeiten entwickeln sich ein wenig, dann ändern sich die Dinge und die Hälfte meines Wissens wird zu tote Last. Das passiert bei keiner meiner anderen Arbeiten.

Und die Komplexität ist schuld.

Komplexität ist gerade eines dieser im Wasser Themen. Kevin Ball schrieb, „wir befinden uns inmitten einer massiven und schnellen Periode des Wandels der Komplexität vom Backend zum Frontend.“ Roneesh hat gerade das Entwirren all dieser Frontend-Komplexität in seinem Kopf gefeiert und seine Gedanken geteilt.

Ich habe auch eine gute Anzahl von Antworten auf Franks Artikel gelesen. Besonders gut gefallen hat mir die von unserem eigenen Robin Rendle aus dem Newsletter

Ich glaube, der Grund für all diese Komplexität und Nuancen in der Arbeit liegt darin, dass wir das Web nicht mehr als eine Reihe von einfachen, hyperverlinkten Dokumenten erwarten.

Unsere Erwartungen als Nutzer des Webs haben sich inzwischen vollständig geändert.

Websites sind an sich schon Maschinen; sie haben Zustände, Benachrichtigungen, Warnungen und Hinweise, Komponenten, die unter bestimmten Umständen erscheinen, standortbezogene Funktionen und eine Komplexität, die alles übersteigt, was wir vor fünfzehn Jahren gebaut haben. Es gibt mehr Geräte und Viewport-Breiten, die unsere Websites mit zunehmend schwierigen Leistungsanforderungen rendern.

Das fühlt sich für mich richtig an. Das ist genau das, was ich fühlte, als ich What is the Future of Front End Web Development? schrieb.

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

Frank weist jedoch darauf hin, dass selbst Layout, Schriftarten und Bilder in ihrer Komplexität explodiert sind. Die Ursache dafür ist meiner Meinung nach der richtige Fokus (und wirklich die Nachfrage nach) Performance. Aber Reaktionen auf Komplexität sind meist diese Dinge plus ein Dutzend oder zwei andere Dinge.

Vielleicht sind die Dinge nicht ohne Grund kompliziert geworden, sondern stattdessen, um zu konkurrieren. Das Web kann mehr, also bitten wir es, mehr zu tun.

Es ist verlockend zu glauben, dass die Komplexität vollständig aus diesem Mehr herrührt. Mehr vom Potenzial des Webs annehmen, mit nativen Apps Schritt halten und leistungsfähigere Werkzeuge für die Menschen bauen. Aber ich bin sicher, die ganze Geschichte ist (hüstel) komplizierter. Jemand sagte mir einmal, der Grund, warum sich die Entwicklertools weiterentwickelt und komplizierter geworden sind, sei, dass Entwickler im Allgemeinen nicht gebeten werden, auf der Geschäfts- und Produktseite zu innovieren. Sie bauen, was ihnen gesagt wird, also nutzen sie ihren Verstand, um an *ihren eigenen* Werkzeugen zu innovieren.

Es kommt darauf an aber. Ein paar persönliche Beispiele.

Ich betreibe CSS-Tricks seit über einem Jahrzehnt. Es ist eine Standard-WordPress-Seite, und obwohl sie sich sicherlich weiterentwickelt hat, ist sie heute nicht viel komplizierter als in den ersten Jahren. Ich bin besser darin geworden, daran zu arbeiten, auch weil sie sich so wenig verändert hat, dass ich mich bei dieser Arbeit wohler fühle. Ich weiß meistens, was all die sich drehenden Zahnräder tun und wo das Öl hingehört.

Auf der anderen Seite habe ich durch CodePen eine lange Produktentwicklung erlebt, die ziemlich einfach begann und zu extremer Komplexität geführt hat. Wir hinterfragen manchmal, ob wir es mit der Komplexität übertrieben haben, aber meistens war jeder Schritt in diese Richtung eine Reaktion, um etwas anderes, ironischerweise, weniger kompliziert zu machen. Ein Beispiel dafür war die Einführung von React'n'Redux'n'Friends, was einen Schritt nach oben in der Komplexität des Entwicklungsworkflows, des Builds und der Deploymentschritte darstellte, aber, glauben Sie es oder nicht, ein Schritt nach unten in der Komplexität der Codebasis war. Diese Werkzeuge helfen uns, schneller zu bauen, einfacher zu debuggen, gut getestet zu bleiben und eine performante Erfahrung zu bieten, um nur einige der Vorteile zu nennen. Wir haben keine Tools nur zum Spaß hinzugefügt; wir haben Tools hinzugefügt, weil wir wachsende Probleme zu lösen hatten.

Nicht jeder hat die gleichen Probleme. Das Web ist ein großer Ort ist ein Satz, den ich manchmal höre und der mir gefällt. Über eine Milliarde Websites, sagen sie. Ein großer Ort in der Tat.

Schauen Sie sich Dan Cederholms Lieblingswebsite an

Sie ist nicht responsiv. Sie ist nicht für das iPhone optimiert. Sie sieht auf einem Retina-Display unscharf aus. Sie verwendet nicht das neueste HTML5/CSS3-Framework. Sie hat keinen durchdachten vertikalen Rhythmus. Die Schriftarten sind nichts Besonderes. Sie ist weder skeumorph noch flach. Sie hat kein eigenes Favicon. Sie hat keine native App oder Twitter oder Instagram. Sie verwendet weder AJAX noch SCRUM noch node.js noch Sinatra. Sie hat keine API oder einen RSS-Feed oder VC-Finanzierung. Sie wurde nicht auf einem prominenten Tech-Blog vorgestellt oder hat einen Preis gewonnen.

Sie erzählt mir die Tagesgerichte.

Ich vermute, sie braucht keine weitere Komplexität, und buchstäblich niemand plädiert dafür. Deshalb ist dieses Gefühl von das Web ist ein großer Ort so nützlich. Wir reden über Komplexität, aber sie ist optional. Eine wunderbar nützliche (und einfache) Website von vor einem Jahrzehnt bleibt wunderbar nützlich und einfach. Glücklicherweise für alle Beteiligten hat das Web bisher die Kompatibilität sehr ernst genommen. Alte Websites brechen nicht einfach so.

Ich wette, die Teile in Franks Aufsatz über Web-Layout werden bei vielen Lesern dieser Seite Anklang finden. Frank zieht die Verbindung zwischen Tabellenlayout und Grid-Layout. Das ist kein seltenes Gefühl. Zum Beispiel

Ich bin sicher, Frank versteht die Vorteile des neuen Grid-Layouts (z. B. versuchen Sie, eine <table> an einem Media-Query-Breakpoint neu anzuordnen), aber die Stimmung war mehr auf Zyklen als auf eine tiefe technische Analyse gerichtet.

Ich würde sagen, man könnte vernünftigerweise argumentieren, dass, insbesondere mit CSS, die Dinge heutzutage einfacher sind. CSS früher ließ uns die Nägel abkauen wegen Cross-Browser-Unterstützung, verteilten Vendor-Präfixen in unserem Code und (lol) beteten zum Box-Modell. Eric Meyer sagt, trotz der Veröffentlichung eines schweren Kompendiums über CSS-Wissen dazu

CSS hat weitaus mehr Fähigkeiten als je zuvor, das stimmt. Im Sinne von „wie viel es potenziell zu wissen gibt“, ja, CSS ist eine größere Herausforderung.

Aber die Kernprinzipien und Mechanismen sind nicht komplizierter als vor einem oder sogar zwei Jahrzehnten. Wenn überhaupt, sind sie jetzt leichter zu verstehen, weil wir unsere Köpfe nicht mehr mit Float-Verhalten oder Inline-Layout belasten müssen, nur um eine Seite zu layouten.

Um auf die Entwickler zurückzukommen, die an ihren eigenen Werkzeugen innovieren, ist ein weiterer zu berücksichtigender Faktor der Einfluss von Website-Buildern auf unsere Branche. Ich werde unter den richtigen Umständen immer eine Website-Builder-App empfehlen. Benötigt Ihr Fotografiegeschäft eine Portfolio-Website? Ihre Bäckerei eine Homepage? Ihre benutzerdefinierte Schal-Website einen Blog und einen E-Commerce-Shop? Wenn es sich um einen Auftrag unter 10.000 US-Dollar handelt, würde ich eher empfehlen, ein spezialisiertes Website-Builder-Produkt zu verwenden, als den Auftrag an jemanden zu vergeben, der etwas komplett Individuelles baut. Ich möchte nicht zu weit in dieses Kaninchenloch abrutschen, aber soviel dazu: Da ich mit dieser Denkweise nicht allein bin, ist der Markt für Low-End-Custom-Design- und Entwicklungsarbeiten ziemlich verschwunden.

Es gibt heutzutage mehr Entwickler, die in Inhouse-Teams oder Agenturen mit großen Kunden arbeiten. Das heißt, immer mehr Entwickler an umfangreichen, langfristigen, hochkomplexen Jobs. Dort sind ihre Gedanken. Große komplizierte Probleme mit großen komplizierten Lösungen. Das wird besprochen. Das wird gebloggt. Darüber wird gestritten. Das ist das Thema auf vielen Konferenzen, auf denen ich war.

Obwohl man sicherlich eine Suppe-des-Tages-Website mit einer index.html-Datei und FTP erstellen kann, sind Blogbeiträge darüber seltener und bekommen nicht so viele Claps.


Ein Shout-out an Dave Rupert, meinen Freund und Co-Moderator von ShopTalk Show, der sich seit ich ihn kenne gegen Komplexität in all ihren Formen wehrt. Ich versuche immer noch aufzuholen.