Aufrüsten gegen den Minderwertigkeitskomplex
5. Februar 2015
Früher war alles besser war Webdesigner noch ein recht gut abgegrenzter, einzelner Beruf, den begeisterungsfähige, technikaffine und geschmackssichere Menschen wunderbar erlernen und ausüben konnten. Ob alleine oder in einer Agentur spielte dabei kaum eine Rolle. Manchmal erhielt man Unterstützung von einem klassischen Grafiker, manchmal konnte eine Webmasterin im Projekt Hilfestellung leisten. 90% der benötigten Arbeiten im Kontext „Website“ konnten von einer Person geleistet werden.
Seit Mitte der Nullerjahre gab es dann verstärkt Webapplikationen mit Serverkomponente , und seit diesem Jahrzehnt werden diese immer stärker mit clientseitiger Logik und Dynamik ausgestattet, bis hin zu reinen Frontend-Apps. Dazu kommt eine Vielfalt an Endgeräten und Nutzungssituationen und – schwupps – ist der Beruf des Webdesigners nicht mehr so klar abgegrenzt wie früher! Es wird spezialisiert wie nichts Gutes, und viele Kolleginnen, die sich früher eventuell allroundmäßig „Webdesignerin“ genannt hätten, sind heute Frontend-Entwicklerinnen. Als solche haben sie nur noch am Rande mit visueller Gestaltung zu tun, und auch das Wissen über die Serverseite – sprich: Datenbanken, CMSe und Serverperformance – überlassen sie anderen Experten.
Nun stehen sie also da, die Frontend-Entwickler, und suchen nach einer neuen Identität für sich und ihre Tätigkeit, und ein bisschen nackt fühlt man sich ja schon. Man kann auf sich alleine gestellt kaum noch eine halbwegs gescheite Website, geschweige denn eine Applikation bauen, dafür braucht es ein Team! Und wenn man sich die einzigen Frontend-Sprachen anguckt, die man zur Verfügung hat, sind diese konzeptionell 20 Jahre alt, nicht mehr sehr praxisnah, zu theoretisch und wirken nicht einmal sonderlich professionell. Blöd! Da hat man den Anspruch, ein richtiger Programmierer zu sein, will sauberen Code schreiben, um auf hohem Niveau für das Frontend zu entwickeln, und womit muss man klarkommen? HTML, CSS und JavaScript? Ernsthaft? Die gleiche Technologie, mit der seit 1997 hässliche Websiten für den Netscape Navigator gebaut werden?
Wahrlich: Die nackten Webstandard-Technologien müssen für junge, gut ausgebildete Informatiker eine echte Zumutung sein! So hatten sie sich das nicht vorgestellt, dass alle richtigen Programmierer über sie lachen und mit dem Finger auf sie zeigen! Richtige Programmierer schreiben C#, Objective-C oder Ruby, sie haben mächtige Entwicklungsumgebungen, feste Typen, Runtimes, VMs. Sie vergleichen Compilergeschwindigkeiten und beobachten die Effizienz von Garbage-Collectoren. Sie deployen auf Devices und testen automatisiert, ob ihre Apps zu häufig crashen. Das sind die Freuden, die das native Programmieren ausmachen! Und natürlich die Tatsache, dass man – zumindest gefühlt – im Bereich der nativen Anwendungen mehr Geld verdienen kann.
Meine steile These ist, dass sich aus dem oben beschriebenen Missverhältnis in den letzten vier bis fünf Jahren eine Art Gegenbewegung gebildet hat, die Frontend-Entwickler weltweit zusammengebracht hat, um gegen die gefühlte Verniedlichung ihres Berufes anzukämpfen. Um gemeinsam die Kränkung wieder wettzumachen. Um die Frontend-Entwicklerin professioneller werden, oder zumindest wirken zu lassen.
Das Resultat dieser – teilweise neidgetriebenen – Anstrengungen ist die Explosion von Meta-Programmierung im Frontend-Bereich. Man hat das Gefühl, dass sich heute fast niemand mehr herablässt, noch normales HTML, CSS und JavaScript zu schreiben. Alles wird kompiliert: HAML zu HTML, SASS zu CSS, CoffeeScript zu JavaScript. Um den ganzen Meta-Code wieder zusammenzusetzen, benötigt man neben Node.js auch einen Package-Manager in Form von npm, ein Build-Tool wie Grunt, Gulp oder Broccoli, sowie groteske Mengen an Node-Plugins für die genannten Build-Tools. Doch als ob wir noch nicht genug Abstraktionsstufen hätten, kommen Tools wie Bower und Yeoman noch obendrauf und automatisieren das automatisierte Automatisieren von automatischem Frontend-Code, der aber in weiten Teilen sowieso „Out of the Box“ von Bootstrap geliefert wird. Und wenn man im Jahre des Herrn 2015 ernsthaft einen Job als Frontend-Dev haben möchte, sollte man ganz schnell noch ein paar Brocken Backbone, React.js und AngularJS lernen, sonst wird das eher nichts.
Mal Spaß beiseite: Viele der genannten Tools sind natürlich sinnvoll und können Zeit sparen, und es ist nicht cool, sich über ihren Einsatz lustig zu machen. Dennoch macht sich seit einiger Zeit bei mir das Gefühl breit, dass das Waffenarsenal der Frontend-Devs mehr und mehr zum Selbstzweck wird, sowie zur Rechtfertigung, dass man eben doch mithalten kann mit den echten Programmieren und ihren fetten IDEs und Prozessen. Dass man automatisierte Toolchains und Deployment-Techniken beherrscht. Und dass man damit ein genauso ernstzunehmender Programmierer sein kann.
Mag alles sein. Ein bisschen Kindergarten scheint mir aber ebenfalls im Spiel zu sein. Kaum eine Woche vergeht, ohne dass man seine Toolchain grundlegend aufrüsten, oder eventuell sogar um eine weitere Automatisierungs- oder Abstraktionsschicht ergänzen muss, um ständig up to date zu bleiben. Ich frage mich, ob die jeweiligen Projekte tatsächlich so umfangreich und hochkomplex sind, oder ob nicht auch einfach ein latenter Minderwertigkeitskomplex verantwortlich ist, der ganz selbstverständlich auftritt, wenn man an einfache und primitive Techniken gefesselt ist, wie sie HTML, CSS und JavaScript in Vergleich zu kompilierten Sprachen darstellen.
Ich für meinen Teil möchte sagen – auch im Interesse einer einfachen und nachvollziehbaren Arbeitsweise: Behaltet die Verhältnismäßigkeit im Auge! Könnt ihr den Einsatz all eurer Tools wirklich gut begründen? Oder ist es nur Angeberei und behindert euch und eure Kollegen bzw. Nachfolger? Verbringt Ihr mehr Zeit beim Feintunen eures Gruntfiles als mit dem Entwurf einer eleganten und gut dokumentierten Programmarchitektur? Ein bisschen weniger Frickeln und ein bisschen mehr Pragmatismus tut manchmal auch ganz gut. Vielen Dank, der alte Mann hat fertig.