Globus, Linie, Programmiercode und Laptop

Es gab eine Zeit, da war JavaScript in der Webentwicklung verpönt. Man war der Meinung damit liessen sich nur nervige Pop-ups oder blinkende Banner sowie unnötige Animationen basteln. Dann kam jQuery und plötzlich war so viel mehr möglich. jQuery machte dabei vor allem die Syntax von JavaScript verständlicher. Plötzlich war es möglich bestimmte Elemente einer Webseite einfach und effizient anzusprechen, ein- oder auszublenden oder nur benötigte Daten aus dem Hintergrund zu laden, ohne die komplette Seite neu laden zu müssen. Das war zwar auch ohne jQuery möglich, aber die damalige JavaScript-Syntax war katastrophal (Das ist sie zwar auch heute noch teilweise, aber das ist ein anders Thema).

Doch seit dem ersten Release von jQuery sind nun schon 15 Jahre vergangen und gerade in der Webentwicklung gibt es rasante Fortschritte. Heute ist JavaScript keine Nischensprache mehr, sondern sehr beliebt, bei kleinen Webseiten bis hin zu grossen Webapplikationen. Doch ist nach all dieser Zeit jQuery noch relevant? Die kurze Antwort: jein, die längere folgt…

Für die lange Antwort sollte man zwei Punkte betrachten. Zum Einen gibt es mittlerweile reichlich Konkurrenz für jQuery. Zum Anderen hat sich hinter jQuery auch JavaScript weiterentwickelt.

jQuery im Vergleich mit der Konkurrenz

Wobei Konkurrenz hier eigentlich der falsche Begriff ist, es sind eher neue Konzepte und neue Frameworks, die jQuery langsam aber sicher in bestimmten Bereichen (wohl gemerkt nicht allen Bereichen) ersetzen. Gefühlt entsteht jeden Tag da draussen ein neues JavaScript-Framework, besonders beliebt sind hier aktuell React, Angular (früher AngularJS) oder Vue.js. Diese greifen dabei allerdings eher die sog. Single Page Applications (kurz SPA) auf. Dabei handelt es sich um Seiten, die technisch nur noch aus einer einzigen Seite bestehen. Jegliche Unterseiten werden asynchron nachgeladen, ein- und ausgeblendet. Mit Hilfe der obigen Frameworks kann man gleichzeitig auch die Webadresse manipulieren, so dass es für den User aussieht, als seien es komplett neue Seiten. Der Vorteil an der ganzen Geschichte ist, dass die Unterseiten (oder einzelne Bereiche) deutlich schneller geladen werden können, was die Anwendung flüssiger macht. Der Nachteil ist, dass dies relativ komplexen Code im JavaScript-geprägten Frontend benötigt. Und da kommen wir wieder zurück zu jQuery: Wer bereits einmal solche SPA‘s mit jQuery gebaut hat, weiss, dass man hier schnell an seine Grenzen kommt. Der Code wird schnell zu Spaghetti-Code. Frameworks wie Angular oder Vue.js helfen hier z.B. mit ihrem Two-Way-Databinding, viel Code muss dadurch gar nicht mehr in JavaScript sondern direkt in HTML geschrieben werden. Das geht zum Einen deutlich schlanker als in jQuery (oder gar reinem JavaScript) und zum Anderen ist dies auch aufgrund der internen Architektur der Frameworks deutlich performanter. Wir sehen also, jQuery hat in bestimmten Bereichen mittlerweile einfach ordentlich Konkurrenz bzw. wurde gnadenlos abgehängt.

Die Frameworks erfreuen sich bei StackOverflow zunehmender Beliebtheit, während jQuery dahinschwindet:

Linien-Diagramm, das den Prozentsatz der Stack Overflow-Fragen zeigt, die sich auf JavaScript beziehen, Javascript, Jquery, Reactjs, Angular, vue.js

Die Weiterentwicklung von jQuery und JavaScript

JavaScript (in seiner Reinform oft als Vanilla-JavaScript bezeichnet) hat sich ebenfalls weiterentwickelt. Wo es früher ein Horror-Szenario war, bestimmte Elemente aus einem HTML-Dokument auszulesen, kam jQuery mit seinen sog. Selektoren zur Rettung. Hinzu kamen diverse Features zum Auslesen von APIs mittels Ajax und viele nützliche Erweiterungen. Im Jahr 2020 ist aber auch Vanilla-JavaScript in diesen Beziehungen nutzbar. Es gibt hier mittlerweile eigene Selektoren, eigene Möglichkeiten APIs zu nutzen und auch Erweiterungen ohne jQuery-Voraussetzung. Einziger Nachteil: Die Selektoren und weiteren Vanilla-Features sind nicht zwingend mit jQuery kompatibel.

Das bringt uns tatsächlich noch zu einem weiteren Punkt: Legacy-Code. Denn gerade hier, bei veraltetem Code, ist jQuery definitiv noch relevant. Dabei klingt «veraltet» schon wieder so negativ, dabei nutzen aber eben auch noch viele moderne Systeme, die auch noch unterstützt und weiterentwickelt werden, jQuery. Z.B. Joomla! und WordPress binden jQuery standardmässig noch ein und es gibt viele nützliche Erweiterungen für jQuery, z.B. für Frontend-Validierungen, Animationen, Slideshows, komplette User Interfaces etc. Selbst Bootstrap, eines der grössten Frontend-Frameworks im Web, wird erst jetzt mit Version 5 auf jQuery verzichten. So schnell wird jQuery also nicht verschwinden, aber seine Tage sind vermutlich dennoch gezählt.

Die Schere zwischen jQuery und JavaScript klafft auch bei StackOverflow immer weiter auseinander:

Linien-Diagramm, das den Prozentsatz der Stack Overflow-Fragen zeigt, die sich auf JavaScript beziehen, Javascript, Jquery

Quellen:

Bild "Vergleich mit der Konkurrenz"
Bild "Verlgeich JavaScript"