Netzgeflüster: Meine Hassliebe zu Javascript

Posted by in Informatik, Netzgeflüster

Das Projekt, was ich gerade verlassen habe, war für mich beim damaligen Einstieg sehr verblüffend. Verblüffend, weil ich dachte, dass ich JavaScript kann und eigentlich recht viel darüber weiß. Allerdings musste ich lernen, dass ich nur das über JavaScript wusste, um zu bedienen, was ich bis dahin brauchte. Die JavaScript Welt war dann doch größer als erwartet und v.A. gab es frappierend viele Möglichkeiten ein- und dieselbe Sache zu coden. Das war irgendwie erschreckend. Jetzt bin ich in einem Projekt, dass keinen Web-Schwerpunkt hat und ich werde es nicht brauchen. Ich muss mir noch überlegen, ob ich das traurig finde. Heute in Netzgeflüster: eine Ode und ein Abgesang auf JavaScript.

Beware the JavaScript

JavaScript (JS) ist bekanntlich eine Skriptsprache, die nichts mit Java zutun hat, sondern nur so benannt wurde, um ihren Bekanntheitsgrad dank des Java-Booms zu vergrößern. So wirds gemacht … . JS wurde lange benutzt, um im Web Umfeld die Logik bereitzustellen. Wir erinnern uns: in der Web-Entwicklung soll man das Modell, die UI und die Logik getrennt verarbeiten. Heißt: das Modell wird durch HTML vorgegeben und ist die grobe Gliederung der Web-Schnittstelle. CSS liefert beispielsweise die konkrete Optik und die Logik (was passiert mit Nutzereingaben? Wann blinkt was?) erledigt beispielsweise ein Framework wie JavaScript. Und da JS so einfach und intuitiv anwendbar ist (es sieht aus wie Pseudocode! Pseudocode!), wurde das Ding irgendwie ein Selbstläufer. Es gab mehr und mehr Derivate, die den Befehls-Stack von JS erweitern. AngularJS, jQuery als perfekte Schnittstelle um beispielsweise Änderungen an der Optik unter bestimmten Bedingungen heraus zu triggern, und und und. Und letzten Endes kann man JS sogar eigenständig auf Servern und Mikrocontrollern laufen lassen. Ich werfe außerdem noch Begriffe wie Node.js in den Raum und verschweige Dojo … . JavaScript ist ganz schön mächtig geworden.

Historisch. Gewachsen.

Ich bewundere es wirklich sehr, wenn jemand kleine Anwendungen mit Javascript und wenig zusätzlichen Bibliotheken hochzieht. Und ich bewundere die Community rund um Javascript, die das Ding zu dieser Wolke aus Toolkits und erweiternden Skriptsprachen gemacht hat. Aber irgendwie macht mir Javascript im Berufsleben immer ein bisschen das Leben schwer. Das liegt natürlich zum Teil einfach auch daran, dass ich in meiner Freizeit wenig bis kaum Projekte damit realisiere. Zumindest wäre das der beste Weg, da mal tiefer einzusteigen. Irgendwelche Tutorials fangen ja leider viel zu oft im Urschleim an. Andere Tutorials trennen nicht die verwendeteten Technologien und es ist schwer herauszufiltern, ob der Inject jetzt zum Javacript-Befehlssatz gehört oder nicht. Um mal ein Beispiel zu geben. Im Source Code großer, historisch gewachsener Projekte ist das Problem meist dasselbe. Man sieht tausend Art und Weisen wie ein Request abgeschickt wird, dort wird ein Promise gehandelt, dort nicht. Klar: wenn man denn von Anfang an Coding-Guidelines hätte, kann das anders aussehen (mit Betonung auf kann). Aber das ist noch nicht alles … da ist auch noch Javascript selbst als die Mutter der Madness.

Batman!

Gary Bernhardt hat es 2012 gut auf den Punkt gebracht, was mich an JavaScript stört. An diesem historisch gewachsenen Monster mit seinen logischen Unschlüssigkeiten, dass aber auf unsägliche Art immer und immer weitergewachsen ist. Quasi wie der süße Brei. Oder der Blob. Falls ihr nicht wisst, was ich meine und was mich stört (oder falls ihr was zum schmunzeln braucht), schaut euch mal Gary Bernhardts Talk mit der schönen Überschrift „Wat“ an:

Zum Video auf Gary Bernhardts Webseite (Screencapture mit Audio).

Right. WAT

„Na na na na na na na na na na na na na na na na… BATMAN!“, via Miriam Villazón Valbuena (Youtube)

Wer was ähnlich schönes sehen möchte und mehr Zeit zum lesen hat, kann es auch noch hier probieren: Brainfuck beware: JavaScript is after you! Patricio Palladino beschreibt darin wie er ein Tool aufbaut, das anfänglich numerische Werte, später aber so ziemlich alles in JavaScript-Sequenzen von ()[]{}!+ transformiert. True Story. Sieht nicht nur aus wie Hieroglyphen, sind irgendwie auch welche. Wer brauch da noch Brainfuck? Da entsteht doch leise der Eindruck, dass JavaScript nicht mit Brain On konzipiert wurde und sich permanent irgendwo zwischen Madness und Genialität bewegt. Wer aufmerksam die Geschichte der Entwicklung von JavaScript liest, bemerkt, dass der logische Core der Frühphase offensichtlich in frappierend kurzer Zeit entstanden ist. Irgendwie schon wieder bewunderswert was für ein Selbstläufer JS geworden ist. Immerhin wurde es mit viel Brain On weitergebastelt und in tausende verwandte System wie AngularJS verzweigt wurde. Was soll man sagen (außer WAT). Mir fehlen die Worte.

Werde ich traurig sein, wird mir JavaScript fehlen? Die Antwort ist nein. Aber ich werde JS früher oder später eh wieder brauchen. Weil. Es. Überall. Ist. Ich weiß nie, ob ich es hassen oder bewundern soll. Coded ihr gerne mit JavaScript? Oder pflegt ihr auch die Hassliebe?

Netzgeflüster ist eine Kategorie meines Blogs in der ich mich immer zwischen dem 10. und 15. eines jedes Monats Themen rund um IT, Forschung, Netzwelt, Internet und eben auch Gerüchten widme. 🙂