Webkrauts Logo

Webkrauts Webkrauts Schriftzug

- für mehr Qualität im Web

Frontendentwicklung ist nicht einfach

Meinung

Frontendentwicklung ist nicht einfach

In vielen Agenturen und Firmen wird das Frontend von Backendentwicklern nebenher gefertigt. Dabei wird die Komplexität des Themas von vielen Verantwortlichen unterschätzt. Die Rolle des Frontends sollte aufgewertet werden.

Rein formal betrachtet und im Vergleich zu bspw. PHP oder Java sind HTML und CSS banale Sprachkonstrukte. Auch JavaScript kann da an Komplexität nicht mithalten. Aber der erste Blick täuscht. Der Teufel steckt im Detail, und das heißt Browser.

Ein Endgegner – unendlich viele Endgegner

Serverseitige Skriptsprachen haben den Vorteil, dass die Entwickler den »Endgegner« kennen; diesen einen Endgegner, der die Ausgabe eindeutig und ausschließlich nach den festgelegten Regeln der eingesetzten Sprache interpretiert. Sie wissen bspw. welche PHP-Version auf dem Server läuft, welche Sprachkonstrukte sie deshalb nutzen dürfen und welche sie tunlichst vermeiden sollten. Backendentwickler haben immer nur diesen einen Endgegner. (Lassen wir mal das evtl. schlecht entwickelte CMS beiseite.)

Für Frontendentwickler gibt es hingegen eine Vielzahl von Endgegnern. Wenn man es genau nimmt, ist es eine unbekannte, sehr hohe Anzahl, die sich fortlaufend ändert. Die Browser sind durch ihre Benutzer anpassbar. Sie unterscheiden sich auch dank der jeweiligen Betriebssysteme. Doch eines ist noch entscheidender: kein Browser hat HTML, CSS und JavaScript komplett und fehlerfrei implementiert. Und es gibt keine zwei Browser, die diese teilweise sehr eigenen Implementierungen auch noch identisch hätten.

Frontendentwickler haben also zunächst keine Kontrolle über die Interpretation ihrer Arbeit, da es neben fixen und damit sicheren Parametern immer noch individuell interpretierte und damit für uns unbekannte Variablen in der Ausgabe gibt. Bildhaft gesprochen versuchen wir immer mit verbundenen Augen ein sich bewegendes Ziel zu fangen, das ständig seine Größe und Koordinaten ändert. Das Ziel des Backendentwicklers bleibt dagegen statisch und damit immer exakt berechenbar.

Wir wissen nichts

Als Frontendentwickler wissen wir nicht, mit welchen Browsern unsere Besucher kommen werden. Wir wissen nichts über ihre Betriebssysteme und nicht, wie diese individuell konfiguriert sind. Wir wissen nicht, ob Hilfsgeräte wie Screenreader oder Bildschirmlupen genutzt werden. Wir wissen nicht, welchen Monitor mit welcher Auflösung er hat. Wir wissen nicht, welche Fähigkeiten der Browser unseres Nutzers hat. Wir wissen nicht, wo unser Besucher die Seite sieht, also ob in einem Raum oder unter freiem Himmel. Wir wissen nicht, welche Sprachen unser Benutzer spricht – und wie gut.

Wir wissen nicht, ob er mit einem Smartphone, einem Tablet, einem Notebook oder gar per Fernseher unser Angebot konsumiert. Wir wissen nicht, ob ein eventuelles Notebook auch zusätzlich einen Touchscreen hat. Dieser weitere – im Zuge der extrem dynamisierten Hardwareentwicklung viel größere – Kontrollverlust der Frontendentwicklung ergibt sich damit aus der schlichten Unkenntnis, wo, mit welchem Gerät und unter welchen Voraussetzungen die Besucher das Ergebnis unserer Arbeit aufrufen.

Wir wissen noch sehr viel mehr nicht. Auf einige dieser Unbekannten können wir reagieren. Meist geschieht dies per JavaScript. Das kann der Nutzer ausschalten. Noch viel häufiger kann die JavaScript-Interpretation durch schlechte Internetverbindungen oder Proxies behindert werden.

Wir müssen damit leben, dass wir keine Ahnung haben, wer unsere Angebote wie und womit betrachtet. Außerhalb von Intranets haben wir keine Kontrolle. Es ist ein steter Kampf zwischen Frontendentwicklern und den anderen Projektbeteiligten, diesen Kontrollverlust begreifbar zu machen und fortwährend in das Projekt mit einfließen zu lassen.

Viele Aufgaben

Die Arbeit eines Frontendentwicklers erschöpft sich zudem nicht im Schreiben von HTML, CSS und JavaScript. Zur Aufgabe gehören heute Kenntnisse in Suchmaschinenoptimierung, die Performance muss ständig optimiert werden und ganz selbstverständlich soll die Seite auf allen möglichen Endgeräten funktionieren (aber vordringlich auf den Geräten des Chefs).

Dabei sollte der Code am Ende leicht wartbar sein. Oft sollen auch Themes einfach erstellt werden können. Abstraktes Denken über den Code ist also zusätzlich Pflicht.

Selbstauferlegte Komplexität

Zu allen diesen komplexen Problemen, denen jeder Frontendentwickler gegenübersteht, kommen selbstauferlegte Schwierigkeiten. Mit dem Ziel, sich die Arbeit zu erleichtern und facettenreicher zu machen, entstanden in den letzten Jahren Tools wie Grunt und Gulp. Ihre Plugins lassen Frontendentwicklung von weitem ein wenig nach Java-Entwicklung aussehen. Zum Glück ohne dessen Langsamkeit.

Bei aller Begeisterung für diese Tools wird gerne vergessen, dass es sich hierbei nur um Hilfsprogramme und Werkzeuge handelt, die unsere Arbeit lediglich erleichtern und Zeit sparen sollen, ohne jedoch Selbstzweck zu sein. Sie sind nicht notwendig, um eine gute Arbeit zu machen. Dafür ist allein Wissen und Zeit für Experimente notwendig.

Frontendentwicklung ist eine eigene Profession

Egal wie perfekt die Programmierung im Backend ist, am Ende sieht der Nutzer nur das Frontend, also HTML, CSS und JavaScript. Deshalb muss in das Frontend ebenso viel Liebe und Aufmerksamkeit fließen, wie in das Backend oder in die Gestaltungsideen.

Es ist deshalb notwendig, dass diese wichtige Aufgabe nicht nebenher erledigt wird, wie das leider noch immer oft der Fall ist. Viele Konzepte wie »Floats« und noch viel mehr »Flexbox« sind kompliziert zu verstehen und bieten viele Fallstricke. Ein Backendentwickler, der nebenher Frontendentwicklung betreibt, ist da die falsche Person am wichtigen Ort.

Frontendentwicklung ist heute so kompliziert, dass alle notwendigen Details und Facetten unmöglich von jemandem durchschaut und begriffen werden können, der diese Aufgabe nur halbherzig und nebenher macht. Ein guter Frontendentwickler ist zudem immer eine Art »Übersetzer«. Mit der Entwicklung des Frontends werden alle anderen Gewerke zusammengeführt. Deshalb muss der Frontendentwickler sowohl mit dem Designer, als auch dem Konzepter und dem Backendentwickler sprechen können. Er muss sie auch verstehen und idealerweise seine Erkenntnisse mit den anderen Gewerken teilen.

Denn leider verstehen sich die einzelnen Gewerke meist nicht, obwohl sie rein formal die gleiche Sprache sprechen. Der Frontendentwickler muss alle Gewerke zumindest kennen und kann dadurch dafür sorgen, dass sich am Ende alle besser untereinander verstehen.

Kommentare

Kilian
am 01.12.2015 - 09:48

Der Artikel ist jetzt nicht so der Hammer. Vielleicht nützlich, um es dem ahnungslosen Chef zu zeigen, aber für jeden Entwickler eher nichts neues und nicht allzu informativ...

Permanenter Link

Dennis Frank
am 01.12.2015 - 11:44

Der erste Kommentar ist jetzt nicht so der Hammer. Vielleicht nützlich, um etwas zu sagen, wenn man nichts zu sagen hat, aber für jeden Leser des Webkrauts-Adventskalenders überflüssige Trollerei und nicht allzu informativ…

„Unendlich viele Endgegner“ - Danke für diese Metapher, Jens. Werde ich auf jeden Fall mal anwenden. Ein schöner Start in den Frontend-Advent!

Permanenter Link

Jessman5
am 01.12.2015 - 13:06

+1 für deinen Kommentar! :D

Permanenter Link

Kilian
am 02.12.2015 - 10:06

Okay, sorry. Mein Kommentar war jetzt nicht gerade konstruktiv. Aber irgendwie hab ich mir von diesem tollen Adventskalender einen (für mich) interessanteren Artikel erwartet. Das nächste Mal halte ich mich bei der schriftlichen Formulierung meiner Empfindungen zurück.

Permanenter Link

Christoph Rumpel
am 01.12.2015 - 12:26

Das zweite Kommentar ist jetzt so richtig der Hammer... :-)

Permanenter Link

Jessman5
am 01.12.2015 - 13:00

Der Artikel ist super und spricht mir aus meiner Seele! Frontend wird viel zu oft unterschätzt und als nebensächlich abgetan. Es wird zeit, dass es einen bindesweiten Frontend Ausbildungsberuf gibt (so wie der Creative Coder in Hannover).
Ich selbst habe Mediengestaltung Gestaltung und Technik (Digital) gelernt und mit html/css als Kind selbst beigebracht. So ist es oft. Ich bin Web Designer und Frontender. 2 Berufe in einem, was sich durch den Grauzonenstatus des Frontend u.a. sehr selten auf das Gehalt und auf den Respekt auswirkt. Da muss was geändert werden!

Permanenter Link

Dennis K
am 01.12.2015 - 13:35

Kann deinem Artikel nur beipflichten, gleiches Problem in unserem Unternehmen. Wie kann man das allgemeine Bewusstsein nur ändern?

Permanenter Link
Stephan Heller

Stephan Heller (Webkraut)
am 01.12.2015 - 22:42

Hallo Jens,

vielen Dank für den Beitrag. Gefällt mir gut. Ja, das kennt man, wenn der Backendler sich war überlegt und auf die Super Idee kommt: Hey, ich mache keine Überschriften mehr, sondern mache DIVs und vergebe Klassen, damit kann ich das viel besser steuern ;-) . Zumal sich die »niedere Arbeit« des HMTLers auch lange Zeit im Stundensatz nieder geschlagen hat.

Und gleichzeitig tut sich in der Richtung doch schon viel. Bei vielen Auftraggebern, für die ich arbeite, ist FrontenderIn derweil ein fester Begriff, es gab auch schon komplette Frontend-Butzen, wo es gar keine Backendler mehr gab, sondern wo die Aufgaben ganz klar sind. Und auch die Anerkennung. Und auch bei Jobanfragen ist es derweil auch immer häufiger klar, was gesucht wird. Vor drei Jahren musste man eine Jobbeschreibung erst komplett lesen, bevor man wusste, ob es was für einen ist. Naja, wobei eben auch nicht immer, hab gestern noch eine Anzeige gelesen: Suchen Java-Entwickler, Schwerpunkt HTML, CSS, Angular. HoHoHo ;-)

Gleichzeitig ist es auch so, wie Du schreibst. Vor 10 Jahren hat man eben »nur« etwas HTML und CSS geklöpplet. JavaScript macht einen immer größeren Teil aus, und mit Angular ist man auch schon wieder mit einem Fuß im Backend. Ich würde behaupten, von der Komplexität tut sich derweil die Frontend-Entwicklung nicht mehr viel zur Backend-Endwicklung. Eher im Gegenteil. Fette JavaScript-Anwendung erfordern wesentlich mehr Knowhow. In PHP hast nur richtig oder falsch. Diesen Zustand wirste im Frondend niemals erreichen.

Frohen Advent!

Permanenter Link

Matthias Apsel
am 16.12.2015 - 09:48

hab gestern noch eine Anzeige gelesen: Suchen Java-Entwickler, Schwerpunkt HTML, CSS, Angular. HoHoHo ;-)

Wie war das noch mit dem Unterschied zwischen Java und JavaScript? Kleiner als der zwischen Bild und Bildung auf jeden Fall, aber doch größer als der zwischen Brand und Brandung?

Frohe Weihnachten an das Team der Webkrauts. Danke für eine Vielzahl toller Artikel.

Permanenter Link

Die Kommentare sind geschlossen.