Die beliebtesten JavaScript-Frameworks und -Bibliotheken
Bei JavaScript (kurz: JS) handelt es sich um eine Skriptsprache, mit der sich dynamische HTML-Inhalte im Webbrowser umsetzen lassen. Die Sprache kann sowohl für die objektorientierte als auch für die prozedurale und funktionale Programmierung genutzt werden. JavaScript enthält zwar vordefinierte Objekte (also Datenelemente mit speziellen Eigenschaften oder Methoden bzw. Funktionen) für den Zugriff auf eine Webseite, doch sind diese teils umständlich in der Anwendung. Inzwischen wurden viele hilfreiche Anweisungen in diversen JavaScript-Bibliotheken (englisch: „JavaScript Libraries“) und -Frameworks zusammengefasst: Werkzeuge, die das Programmieren erleichtern sollen. Wir stellen die besten und bekanntesten vor.
Bibliothek vs. Framework
Zunächst jedoch gilt es, die Begriffe auseinander zu halten. „Bibliothek“ (bzw. Library) und „Framework“ werden des Öfteren synonym verwendet – was genau genommen falsch ist. Auch wenn der Übergang tatsächlich in vielerlei Hinsicht fließend ist, gibt es grundlegende Unterschiede zwischen den beiden.
Bibliothek
Innerhalb der Programmierung handelt es sich bei einer Bibliothek grundsätzlich um eine Programmbibliothek – egal ob Klassen-, Komponenten- oder irgendeine andere Bibliothek. Programmbibliotheken beherbergen immer Unterprogramme, die mit Hilfsfunktionen die Programmierung erleichtern sollen. Im Unterschied zu einem Framework wird deshalb eine Bibliothek stärker auf eine bestimmte Verwendung hin entwickelt und besitzt hierfür aufeinander abgestimmte Funktionen. Beispielsweise dient die JavaScript-Bibliothek D3.js der Datenvisualisierung – mit ihr lassen sich sowohl kleine Tabellen, Diagramme und Statistiken als auch komplexe grafische Darstellungen umsetzen (inklusive Animationen und Interaktionsmöglichkeiten). Bibliotheken werden stets von einer Software eingebunden, die auf die entsprechenden Funktionen einer Programmbibliothek zugreift, sobald sie eine bestimmte Funktion aus dem Sortiment benötigt. Deshalb können Bibliotheken nur innerhalb eines Programms arbeiten und nicht selbstständig ausgeführt werden.
Framework
Auch ein Framework (englisch für „Rahmenstruktur“, „Ordnungsrahmen“) ist kein autonomes Programm, sondern vielmehr eine spezielle Form einer Klassenbibliothek. Ein Framework stellt die Software-Architektur (also das Grundgerüst) einer Anwendung dar und bestimmt wesentlich den Entwicklungsprozess. Frameworks besitzen bestimmte Entwurfsmuster (Design Patterns) mit verschiedenen Funktionen (häufig in Form mehrerer Bibliotheken) und dienen der Entwicklung neuer, eigenständiger Anwendungen. Ein Beispiel hierfür ist das Zend-Framework für PHP, das u. a. in der Onlineshop-Software von Magento und dem Webanalytik-Tool Matomo genutzt wird.
Inversion of Control
Ein weiterer Unterschied zwischen einem Framework und einer Bibliothek besteht in ihrer Steuerung. Bei Bibliotheken wird der Code von Programmierern über die Programmierschnittstelle einer Software aufgerufen. Frameworks vollziehen hingegen eine Umkehrung der Steuerung („Inversion of Control“): Der Code wird in festgelegte Strukturen des Frameworks eingebettet und aufgerufen, sobald er benötigt wird. Zusammenfassend kann man sagen, dass Bibliotheken von dem Programm aufgerufen werden, wohingegen ein Framework dem Programm Vorgaben macht.
JavaScript-Bibliotheken und -Frameworks
Der Kern von JavaScript ist eine eher schlichte Programmiersprache, die sich besonders für den Einsatz innerhalb des Browsers anbietet. Probleme bereitet vielen Programmierern jedoch die Schnittstelle zur Website: das DOM (Document Object Model). Genau hier setzen JavaScript-Frameworks und -Bibliotheken an: Sie bieten Entwicklern Arbeitserleichterungen in diesem und anderen Feldern der Programmierung. Die in den nächsten Abschnitten vorgestellten JavaScript-Erweiterungen können allesamt kostenfrei heruntergeladen werden.
jQuery
Die umfangreiche Bibliothek jQuery ist die am meisten genutzte JavaScript-Library. Dies liegt unter anderem daran, dass man mit ihr einfach browserübergreifend Code schreiben kann und für sie sehr viele Plug-ins existieren. Die quelloffene Bibliothek ist Bestandteil vieler Content-Management-Systeme wie WordPress, Drupal oder Joomla!. jQuery dient vor allem als komfortable Schnittstelle zum DOM und bietet hierbei diverse Funktionen: Mit CSS3-Selektoren lassen sich Webseiten-Elemente sehr unkompliziert auswählen und manipulieren. Besonders geschätzt wird jQuery auch aufgrund der Möglichkeit, Ajax-Anfragen (HTTP-Anfragen ohne das erneute Laden der Webseite) einzubinden.
Vorteile jQuery | Nachteile jQuery |
---|---|
Ajax-Support | Kann im Vergleich zu CSS sehr langsam sein |
Sehr populär | Neigt zu Spaghetti-Code |
Umfangreiche Bibliothek | Durch neue JavaScript-Funktionen teilweise überflüssig geworden |
Einfach zu nutzen | |
Zahlreiche Plug-ins |
jQuery UI
Bei jQuery UI handelt es sich um eine freie Erweiterung für jQuery. Sie dient der Gestaltung und Umsetzung einer Benutzeroberfläche (englisch: „User Interface“ oder abgekürzt „UI“) – beispielsweise von Webseiten oder Web-Apps. Der Schwerpunkt liegt auf der einfachen Gestaltung von Effekten und Interaktionen. Zum Funktionsumfang von jQuery UI zählen die Umsetzung von Interaktionsmöglichkeiten (wie Drag-and-drop, Vergrößerung bzw. Verkleinerung von Webseitenelementen etc.), Animationen und Effekten sowie Widgets (wie Autocomplete, Slider, Datepicker etc.). Über den Grafikeditor ThemeRoller können eigene Themes erstellt, aber auch bereits vorhandene verwendet und angepasst werden – durch den modularen Aufbau werden hierbei auch nur benötigte Komponenten implementiert.
Vorteile jQuery UI | Nachteile jQuery UI |
---|---|
Einfache Handhabung durch Widgets | Nur langsame Weiterentwicklung |
ThemeRoller | erfordert jQuery |
Dojo Toolkit
Das Dojo Toolkit bietet sich vor allem für die Realisierung von Webapplikationen und dynamischen Webinhalten an. Als eine der ältesten JavaScript-Bibliotheken, die auf dem Markt noch relevant ist, wartet sie mit einem vielfältigen Funktionsumfang auf – die wichtigsten Bestandteile des Toolkits sind dabei das Hauptprogramm (Dojo) und Dijit, ein Baukasten für grafische Benutzeroberflächen. Darüber kann man mithilfe vorgefertigter Widgets Elemente in die zu erstellende Website einbauen. Auch Dojo kann sowohl mit dem DOM als auch mit Ajax umgehen.
Vorteile Dojo Toolkit | Nachteile Dojo Toolkit |
---|---|
Einfache Handhabung durch Widgets | Nicht so leicht zu erlernen |
Ajax-Support | Langsame Weiterentwicklung |
Umfassende, modular aufgebaute Bibliothek |
React
React fand erstmals 2011 im Newsfeed von Facebook Verwendung. 2013 wurde es dann auf Open-Source-Basis veröffentlicht. Es handelt sich um eine weitere JavaScript-Library, mit der man Benutzeroberflächen erstellen kann. Das Besondere dabei ist, dass sich React nicht nur im Webseiten-Client einsetzen lässt, sondern auch auf dem Server oder bei der App-Entwicklung zum Einsatz kommt. Dies ist auf die Verwendung eines virtuellen DOMs zurückzuführen, womit auch das Testen von Webanwendungen einfacher wird. Darüber hinaus überzeugt die JavaScript-Bibliothek viele Entwickler durch One-direction-data-flow: Diese Technik sorgt für einen stabilen Code, indem Änderungen in hierarchisch tieferliegendem Code den höherstehenden nicht beeinflussen können. Nur in die andere Richtung können Änderungen Auswirkungen haben.
Vorteile React | Nachteile React |
---|---|
Virtual DOM | Schwer zu erlernen |
One-way-data-flow | |
Serverseitiges Rendering | |
Für Mobile-Apps einsetzbar |
Zepto
Zepto ist ein wahres Leichtgewicht: Während jQuery unter anderem durch Umfang besticht, ist dies gleichzeitig ein Faktor, der manche Entwickler abschreckt. Die bekannteste JavaScript-Library ist für einige Nutzer zu sperrig. Das minimalistische Zepto kommt sehr viel schlanker daher und soll deshalb schneller laden und weniger Platz verbrauchen, weshalb man es vor allem für mobile Apps einsetzt. Um den Dateiumfang gering zu halten, spart Zepto zum Beispiel an der Komptabilität mit älteren Browsern. Auch um Ajax und Animationen zu ermöglichen, muss man zu zusätzlichen Modulen greifen.
Vorteile Zepto | Nachteile Zepto |
---|---|
Sehr schlank | Unterstützt keine älteren Browser |
Einfach zu lernen | Ajax und Animationen nur durch zusätzliche Module möglich |
Kaum Vorteile gegenüber jQuery |
CreateJS
Nicht nur eine, sondern gleich mehrere Bibliotheken: CreateJS ist eine Suite, die aus vier verschiedenen Bibliotheken besteht: EaselJS (Grafiken & Interaktivität), TweenJS (Animationen), SoundJS (Audio) und PreloadJS (Preloading). Diese wiederum sind nicht abhängig voneinander. Das bedeutet, dass man nicht alle vier Bibliotheken in einem Projekt implementieren muss, obwohl man zum Beispiel nur eine benötigt. Des Weiteren werden einige Werkzeuge angeboten, mit denen die Arbeit mit den JavaScript-Bibliotheken vereinfacht wird. Der Fokus liegt auf der Entwicklung von HTML5- und Flash-Anwendungen. Überhaupt arbeitet das Team von CreateJS eng mit Adobe zusammen, weshalb es auch Tools gibt, die die nahtlose Zusammenarbeit der Suite mit Produkten von Adobe sicherstellen.
Vorteile CreateJS | Nachteile CreateJS |
---|---|
Unabhängige Bibliotheken | Kleine Community |
Zusätzliche Werkzeuge | |
Integration in Adobe Animate |
JavaScript-Bibliotheken im Überblick
jQuery | jQuery UI | Dojo Toolkit | React | Zepto | CreateJS | |
---|---|---|---|---|---|---|
Erscheinungsjahr | 2006 | 2007 | 2005 | 2013 | 2010 | 2012 |
Maintainer | JS Foundation | JS Foundation | Dojo Foundation | Thomas Fuchs | gskinner.com | |
Lizenz | MIT | MIT | BSD/AFL | MIT | MIT | MIT |
GitHub-Contributors | ca. 270 | ca. 300 | ca. 100 | ca. 1.100 | ca. 180 | ca. 40 |
Besonderheiten | bekannteste Library | Fokus auf GUI | Fokus auf Web-Apps | Virtual DOM | Minimalistisch | Integration in Adobe Animate |
Beliebte JavaScript-Frameworks
Es gibt erheblich mehr JavaScript-Bibliotheken als -Frameworks. Letztere eignen sich vor allem für komplexe Webanwendungen. Lassen sich Entwickler auf die Konzepte und Vorgaben des jeweiligen Frameworks ein, können sie sehr effektiv damit arbeiten.
AngularJS
Das von Google stammende Framework hat mit Abstand die größte Community unter den JavaScript-Frameworks. AngularJS dient – ähnlich wie sein Hauptkonkurrent, Facebooks Bibliothek React – der Erstellung von Single-Page-Webanwendungen (Web-Apps, die nur aus einem HTML-Dokument bestehen). Aufgrund des MVVM-Ansatzes (Model-View-ViewModel) können insbesondere Webapplikationen entwickelt werden, die stark auf die Interaktion mit den Usern ausgelegt sind. (Die Hersteller des JS-Frameworks kategorisieren AngularJS allerdings lieber – halb ernst – als MVW: Model-View-Whatever) Dabei rendert AngularJS die Webanwendung clientseitig. Das Framework basiert auf jQuery Lite – einer abgespeckten Variante der bekannten JavaScript-Bibliothek jQuery.
Vorteile AngularJS | Nachteile AngularJS |
---|---|
Sehr große Community | Ist inzwischen durch Angular ersetzt |
Teil des MEAN-Software-Stacks | Hohe Einstiegshürden |
Angular
Bei Angular – manchmal auch Angular 2 genannt – handelt es sich um den Nachfolger von AngularJS. Das JS-Framework ist immer noch vorrangig für die Entwicklung von Single-Page-Webanwendungen gedacht. Google hat aber teilweise sehr starke Veränderungen in der zweiten Version vorgenommen. Der größte Unterschied dürfte sein, dass man nicht mehr JavaScript, sondern TypeScript zur Programmierung verwendet. Da die Programmiersprache von Microsoft aber auf JavaScript aufbaut und diese komplett in sich trägt, resultiert daraus keine direkte Einschränkung bei der JS-Entwicklung. Zusätzlich hat man Angular nun so angepasst, dass das Entwickeln von Anwendungen auch über mehrere Plattformen hinweg (Desktop, Mobile, Tablet) kein Problem ist.
Vorteile Angular | Nachteile Angular |
---|---|
Mehr Möglichkeiten dank TypeScript | Keine einfache Migration von AngularJS zu Angular |
Cross-Platform-Development | Noch höhere Einstiegshürden als beim Vorgänger |
Ember.js
Auch Ember.js ist ein clientseitiges Framework, das für die Umsetzung von Single-Page-Webanwendungen eingesetzt wird, mit dem man aber auch Desktopanwendungen erzeugen kann. Ein Unterscheidungsmerkmal zu AngularJS ist, dass die Macher von Ember.js die Community noch intensiver in die Entwicklungsprozesse des Frameworks miteinbeziehen und bedeutende Änderungen am Framework mit dieser öffentlich diskutieren, bevor sie umgesetzt werden. Ember.js wird als Framework vermarktet, mit dem man ambitionierte Webapplikationen erstellt – dementsprechend richtet es sich in erster Linie an Entwickler, die bereits Erfahrung mit der Konzeption von Webanwendungen haben.
Vorteile Ember.js | Nachteile Ember.js |
---|---|
Wird durch Open-Source-Community entwickelt | Gerade für Einsteiger sehr anspruchsvoll |
Lässt sich auch für Desktopanwendungen einsetzen |
Vue.js
Auch bei Vue.js handelt es sich um ein JavaScript-Framework zur Entwicklung von Single-Page-Webanwendungen, das an Angular und React erinnert. Die Entwickler des relativ jungen und aufstrebenden Projekts haben Vue.js bewusst so gestaltet, dass gerade Anfängern der Einstieg vergleichsweise leicht fällt. So ist es zum Beispiel möglich, Templates in HTML einzubinden. Darüber hinaus soll Vue.js auch sehr viel flexibler sein als viele andere Frameworks, die für gewöhnlich die Art und Weise, wie man mit dem Framework umgeht, starr vorgeben.
Vorteile Vue.js | Nachteile Vue.js |
---|---|
Schnell zu erlernen | Wenig komplex |
Unterstützt HTML & CSS | Vergleichsweise kleine Community |
Flexible Entwicklungsmöglichkeiten |
Meteor
Meteor – manchmal auch MeteorJS genannt – ist ein JS-Framework, das sich besonders gut für Cross-Platform-Development eignet. Es ermöglicht Entwicklern, mit dem gleichen Code sowohl Webanwendungen als auch Mobile-Apps zu erstellen. Weiterer Vorteil: Änderungen im Code können dank des eigens entwickelten Distributed Data Protocol (DDP) direkt an Clients weitergeleitet werden. Über das kostenlose Framework hinaus bieten die Hersteller von Meteor auch Galaxy an: Hierbei handelt es sich um eine kostenpflichtige Plattform. Entwickler können den Cloud-Dienst nutzen, um ihre Projekte zu veröffentlichen und zu hosten. Das JavaScript-Framework läuft auf Node.js-Basis – daher ist es auch beim Entwickeln mit Meteor sehr sinnvoll, Kenntnisse der Entwicklungsumgebung zu haben. Mit Meteor erstellen Sie Backend und Frontend in einem Guss, ohne die Sprache zu wechseln – ein revolutionäres Konzept, dass sich allerdings noch nicht durchgesetzt hat.
Vorteile Meteor | Nachteile Meteor |
---|---|
Cross-Platform-Development | Funktioniert nur mit MongoDB und nicht mit anderen Datenbanktypen |
Hosting-Platform Galaxy | Umstellung des Backends notwendig |
Lässt sich mit Angular, React und anderen Frameworks/Bibliotheken kombinieren | Probleme mit Suchmaschinen und Performance |
JavaScript-Frameworks im Überblick
AngularJS | Angular | Ember.js | Vue.js | Meteor | |
---|---|---|---|---|---|
Erscheinungsjahr | 2009 | 2016 | 2011 | 2014 | 2012 |
Maintainer | Ember Core Team | Evan You | Meteor Development Group | ||
Lizenz | MIT | MIT | MIT | MIT | MIT |
GitHub-Contributors | ca. 1.600 | ca. 570 | ca. 700 | ca. 700 | ca. 370 |
Architektur | MVVM/MVW | MVC | MVVM | MVVM | MVVM |
Besonderheiten | Auch für Mobile- und Desktop-Apps einsetzbar | Auch für Mobile- und Desktop-Apps einsetzbar | Auch für Desktopanwendungen einsetzbar | Einfache Einarbeitung | Kombiniert Backend und Frontend |
Nützliche Werkzeuge für viele Bereiche
Frameworks und Bibliotheken können eine erhebliche Erleichterung für die Arbeit mit JavaScript bedeuten. Die oben vorgestellten bilden nur einen kleinen Teil der verfügbaren Tools. Eine gute Quelle für weitere JavaScript-Frameworks, -Libraries und auch -Plug-ins stellt neben GitHub auch die Website www.javascripting.com dar. Dort lassen sich passende JavaScript-Erweiterungen für diverse Zwecke finden.