Bei Ja­va­Script (kurz: JS) handelt es sich um eine Skript­spra­che, mit der sich dy­na­mi­sche HTML-Inhalte im Web­brow­ser umsetzen lassen. Die Sprache kann sowohl für die ob­jekt­ori­en­tier­te als auch für die pro­ze­du­ra­le und funk­tio­na­le Pro­gram­mie­rung genutzt werden. Ja­va­Script enthält zwar vor­de­fi­nier­te Objekte (also Da­ten­ele­men­te mit spe­zi­el­len Ei­gen­schaf­ten oder Methoden bzw. Funk­tio­nen) für den Zugriff auf eine Webseite, doch sind diese teils um­ständ­lich in der Anwendung. In­zwi­schen wurden viele hilf­rei­che An­wei­sun­gen in diversen Ja­va­Script-Bi­blio­the­ken (englisch: „Ja­va­Script Libraries“) und -Frame­works zu­sam­men­ge­fasst: Werkzeuge, die das Pro­gram­mie­ren er­leich­tern sollen. Wir stellen die besten und be­kann­tes­ten vor.

Bi­blio­thek vs. Framework

Zunächst jedoch gilt es, die Begriffe aus­ein­an­der zu halten. „Bi­blio­thek“ (bzw. Library) und „Framework“ werden des Öfteren synonym verwendet – was genau genommen falsch ist. Auch wenn der Übergang tat­säch­lich in vielerlei Hinsicht fließend ist, gibt es grund­le­gen­de Un­ter­schie­de zwischen den beiden.

Bi­blio­thek

Innerhalb der Pro­gram­mie­rung handelt es sich bei einer Bi­blio­thek grund­sätz­lich um eine Pro­gramm­bi­blio­thek – egal ob Klassen-, Kom­po­nen­ten- oder ir­gend­ei­ne andere Bi­blio­thek. Pro­gramm­bi­blio­the­ken be­her­ber­gen immer Un­ter­pro­gram­me, die mit Hilfs­funk­tio­nen die Pro­gram­mie­rung er­leich­tern sollen. Im Un­ter­schied zu einem Framework wird deshalb eine Bi­blio­thek stärker auf eine bestimmte Ver­wen­dung hin ent­wi­ckelt und besitzt hierfür auf­ein­an­der ab­ge­stimm­te Funk­tio­nen. Bei­spiels­wei­se dient die Ja­va­Script-Bi­blio­thek D3.js der Da­ten­vi­sua­li­sie­rung – mit ihr lassen sich sowohl kleine Tabellen, Diagramme und Sta­tis­ti­ken als auch komplexe grafische Dar­stel­lun­gen umsetzen (inklusive Ani­ma­tio­nen und In­ter­ak­ti­ons­mög­lich­kei­ten). Bi­blio­the­ken werden stets von einer Software ein­ge­bun­den, die auf die ent­spre­chen­den Funk­tio­nen einer Pro­gramm­bi­blio­thek zugreift, sobald sie eine bestimmte Funktion aus dem Sortiment benötigt. Deshalb können Bi­blio­the­ken nur innerhalb eines Programms arbeiten und nicht selbst­stän­dig aus­ge­führt werden.

Framework

Auch ein Framework (englisch für „Rah­men­struk­tur“, „Ord­nungs­rah­men“) ist kein autonomes Programm, sondern vielmehr eine spezielle Form einer Klas­sen­bi­blio­thek. Ein Framework stellt die Software-Ar­chi­tek­tur (also das Grund­ge­rüst) einer Anwendung dar und bestimmt we­sent­lich den Ent­wick­lungs­pro­zess. Frame­works besitzen bestimmte Ent­wurfs­mus­ter (Design Patterns) mit ver­schie­de­nen Funk­tio­nen (häufig in Form mehrerer Bi­blio­the­ken) und dienen der Ent­wick­lung neuer, ei­gen­stän­di­ger An­wen­dun­gen. Ein Beispiel hierfür ist das Zend-Framework für PHP, das u. a. in der On­line­shop-Software von Magento und dem Web­ana­ly­tik-Tool Matomo genutzt wird.

Inversion of Control

Ein weiterer Un­ter­schied zwischen einem Framework und einer Bi­blio­thek besteht in ihrer Steuerung. Bei Bi­blio­the­ken wird der Code von Pro­gram­mie­rern über die Pro­gram­mier­schnitt­stel­le einer Software auf­ge­ru­fen. Frame­works voll­zie­hen hingegen eine Umkehrung der Steuerung („Inversion of Control“): Der Code wird in fest­ge­leg­te Struk­tu­ren des Frame­works ein­ge­bet­tet und auf­ge­ru­fen, sobald er benötigt wird. Zu­sam­men­fas­send kann man sagen, dass Bi­blio­the­ken von dem Programm auf­ge­ru­fen werden, wo­hin­ge­gen ein Framework dem Programm Vorgaben macht.

Ja­va­Script-Bi­blio­the­ken und -Frame­works

Der Kern von Ja­va­Script ist eine eher schlichte Pro­gram­mier­spra­che, die sich besonders für den Einsatz innerhalb des Browsers anbietet. Probleme bereitet vielen Pro­gram­mie­rern jedoch die Schnitt­stel­le zur Website: das DOM (Document Object Model). Genau hier setzen Ja­va­Script-Frame­works und -Bi­blio­the­ken an: Sie bieten Ent­wick­lern Ar­beits­er­leich­te­run­gen in diesem und anderen Feldern der Pro­gram­mie­rung. Die in den nächsten Ab­schnit­ten vor­ge­stell­ten Ja­va­Script-Er­wei­te­run­gen können allesamt kos­ten­frei her­un­ter­ge­la­den werden.

jQuery

Die um­fang­rei­che Bi­blio­thek jQuery ist die am meisten genutzte Ja­va­Script-Library. Dies liegt unter anderem daran, dass man mit ihr einfach brow­se­r­ü­ber­grei­fend Code schreiben kann und für sie sehr viele Plug-ins exis­tie­ren. Die quell­of­fe­ne Bi­blio­thek ist Be­stand­teil vieler Content-Ma­nage­ment-Systeme wie WordPress, Drupal oder Joomla!. jQuery dient vor allem als kom­for­ta­ble Schnitt­stel­le zum DOM und bietet hierbei diverse Funk­tio­nen: Mit CSS3-Se­lek­to­ren lassen sich Webseiten-Elemente sehr un­kom­pli­ziert auswählen und ma­ni­pu­lie­ren. Besonders geschätzt wird jQuery auch aufgrund der Mög­lich­keit, Ajax-Anfragen (HTTP-Anfragen ohne das erneute Laden der Webseite) ein­zu­bin­den.

Vorteile jQuery Nachteile jQuery
Ajax-Support Kann im Vergleich zu CSS sehr langsam sein
Sehr populär Neigt zu Spaghetti-Code
Um­fang­rei­che Bi­blio­thek Durch neue Ja­va­Script-Funk­tio­nen teilweise über­flüs­sig geworden
Einfach zu nutzen  
Zahl­rei­che Plug-ins  

jQuery UI

Bei jQuery UI handelt es sich um eine freie Er­wei­te­rung für jQuery. Sie dient der Ge­stal­tung und Umsetzung einer Be­nut­zer­ober­flä­che (englisch: „User Interface“ oder abgekürzt „UI“) – bei­spiels­wei­se von Webseiten oder Web-Apps. Der Schwer­punkt liegt auf der einfachen Ge­stal­tung von Effekten und In­ter­ak­tio­nen. Zum Funk­ti­ons­um­fang von jQuery UI zählen die Umsetzung von In­ter­ak­ti­ons­mög­lich­kei­ten (wie Drag-and-drop, Ver­grö­ße­rung bzw. Ver­klei­ne­rung von Web­sei­ten­ele­men­ten etc.), Ani­ma­tio­nen und Effekten sowie Widgets (wie Au­to­com­ple­te, Slider, Da­te­pi­cker etc.). Über den Gra­fik­edi­tor Theme­Rol­ler können eigene Themes erstellt, aber auch bereits vor­han­de­ne verwendet und angepasst werden – durch den modularen Aufbau werden hierbei auch nur benötigte Kom­po­nen­ten im­ple­men­tiert.

Vorteile jQuery UI Nachteile jQuery UI
Einfache Hand­ha­bung durch Widgets Nur langsame Wei­ter­ent­wick­lung
Theme­Rol­ler erfordert jQuery

Dojo Toolkit

Das Dojo Toolkit bietet sich vor allem für die Rea­li­sie­rung von Web­ap­pli­ka­tio­nen und dy­na­mi­schen Web­in­hal­ten an. Als eine der ältesten Ja­va­Script-Bi­blio­the­ken, die auf dem Markt noch relevant ist, wartet sie mit einem viel­fäl­ti­gen Funk­ti­ons­um­fang auf – die wich­tigs­ten Be­stand­tei­le des Toolkits sind dabei das Haupt­pro­gramm (Dojo) und Dijit, ein Baukasten für grafische Be­nut­zer­ober­flä­chen. Darüber kann man mithilfe vor­ge­fer­tig­ter Widgets Elemente in die zu er­stel­len­de Website einbauen. Auch Dojo kann sowohl mit dem DOM als auch mit Ajax umgehen.

Vorteile Dojo Toolkit Nachteile Dojo Toolkit
Einfache Hand­ha­bung durch Widgets Nicht so leicht zu erlernen
Ajax-Support Langsame Wei­ter­ent­wick­lung
Um­fas­sen­de, modular auf­ge­bau­te Bi­blio­thek  

React

React fand erstmals 2011 im Newsfeed von Facebook Ver­wen­dung. 2013 wurde es dann auf Open-Source-Basis ver­öf­fent­licht. Es handelt sich um eine weitere Ja­va­Script-Library, mit der man Be­nut­zer­ober­flä­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-Ent­wick­lung zum Einsatz kommt. Dies ist auf die Ver­wen­dung eines vir­tu­el­len DOMs zu­rück­zu­füh­ren, womit auch das Testen von Web­an­wen­dun­gen einfacher wird. Darüber hinaus überzeugt die Ja­va­Script-Bi­blio­thek viele Ent­wick­ler durch One-direction-data-flow: Diese Technik sorgt für einen stabilen Code, indem Än­de­run­gen in hier­ar­chisch tie­fer­lie­gen­dem Code den hö­her­ste­hen­den nicht be­ein­flus­sen können. Nur in die andere Richtung können Än­de­run­gen Aus­wir­kun­gen haben.

Vorteile React Nachteile React
Virtual DOM Schwer zu erlernen
One-way-data-flow  
Ser­ver­sei­ti­ges Rendering  
Für Mobile-Apps ein­setz­bar  

Zepto

Zepto ist ein wahres Leicht­ge­wicht: Während jQuery unter anderem durch Umfang besticht, ist dies gleich­zei­tig ein Faktor, der manche Ent­wick­ler ab­schreckt. Die be­kann­tes­te Ja­va­Script-Library ist für einige Nutzer zu sperrig. Das mi­ni­ma­lis­ti­sche Zepto kommt sehr viel schlanker daher und soll deshalb schneller laden und weniger Platz ver­brau­chen, weshalb man es vor allem für mobile Apps einsetzt. Um den Da­tei­um­fang gering zu halten, spart Zepto zum Beispiel an der Komp­ta­bi­li­tät mit älteren Browsern. Auch um Ajax und Ani­ma­tio­nen zu er­mög­li­chen, muss man zu zu­sätz­li­chen Modulen greifen.

Vorteile Zepto Nachteile Zepto
Sehr schlank Un­ter­stützt keine älteren Browser
Einfach zu lernen Ajax und Ani­ma­tio­nen nur durch zu­sätz­li­che Module möglich
  Kaum Vorteile gegenüber jQuery

CreateJS

Nicht nur eine, sondern gleich mehrere Bi­blio­the­ken: CreateJS ist eine Suite, die aus vier ver­schie­de­nen Bi­blio­the­ken besteht: EaselJS (Grafiken & In­ter­ak­ti­vi­tät), TweenJS (Ani­ma­tio­nen), SoundJS (Audio) und PreloadJS (Prel­oa­ding). Diese wiederum sind nicht abhängig von­ein­an­der. Das bedeutet, dass man nicht alle vier Bi­blio­the­ken in einem Projekt im­ple­men­tie­ren muss, obwohl man zum Beispiel nur eine benötigt. Des Weiteren werden einige Werkzeuge angeboten, mit denen die Arbeit mit den Ja­va­Script-Bi­blio­the­ken ver­ein­facht wird. Der Fokus liegt auf der Ent­wick­lung von HTML5- und Flash-An­wen­dun­gen. Überhaupt arbeitet das Team von CreateJS eng mit Adobe zusammen, weshalb es auch Tools gibt, die die nahtlose Zu­sam­men­ar­beit der Suite mit Produkten von Adobe si­cher­stel­len.

Vorteile CreateJS Nachteile CreateJS
Un­ab­hän­gi­ge Bi­blio­the­ken Kleine Community
Zu­sätz­li­che Werkzeuge  
In­te­gra­ti­on in Adobe Animate  

Ja­va­Script-Bi­blio­the­ken im Überblick

  jQuery jQuery UI Dojo Toolkit React Zepto CreateJS
Er­schei­nungs­jahr 2006 2007 2005 2013 2010 2012
Main­tai­ner JS Foun­da­ti­on JS Foun­da­ti­on Dojo Foun­da­ti­on Facebook Thomas Fuchs gskinner.com
Lizenz MIT MIT BSD/AFL MIT MIT MIT
GitHub-Con­tri­bu­tors ca. 270 ca. 300 ca. 100 ca. 1.100 ca. 180 ca. 40
Be­son­der­hei­ten be­kann­tes­te Library Fokus auf GUI Fokus auf Web-Apps Virtual DOM Mi­ni­ma­lis­tisch In­te­gra­ti­on in Adobe Animate

Beliebte Ja­va­Script-Frame­works

Es gibt erheblich mehr Ja­va­Script-Bi­blio­the­ken als -Frame­works. Letztere eignen sich vor allem für komplexe Web­an­wen­dun­gen. Lassen sich Ent­wick­ler auf die Konzepte und Vorgaben des je­wei­li­gen Frame­works ein, können sie sehr effektiv damit arbeiten.

AngularJS

Das von Google stammende Framework hat mit Abstand die größte Community unter den Ja­va­Script-Frame­works. AngularJS dient – ähnlich wie sein Haupt­kon­kur­rent, Facebooks Bi­blio­thek React – der Er­stel­lung von Single-Page-Web­an­wen­dun­gen (Web-Apps, die nur aus einem HTML-Dokument bestehen). Aufgrund des MVVM-Ansatzes (Model-View-ViewModel) können ins­be­son­de­re Web­ap­pli­ka­tio­nen ent­wi­ckelt werden, die stark auf die In­ter­ak­ti­on mit den Usern ausgelegt sind. (Die Her­stel­ler des JS-Frame­works ka­te­go­ri­sie­ren AngularJS al­ler­dings lieber – halb ernst – als MVW: Model-View-Whatever) Dabei rendert AngularJS die Web­an­wen­dung cli­ent­sei­tig. Das Framework basiert auf jQuery Lite – einer ab­ge­speck­ten Variante der bekannten Ja­va­Script-Bi­blio­thek jQuery.

Vorteile AngularJS Nachteile AngularJS
Sehr große Community Ist in­zwi­schen durch Angular ersetzt
Teil des MEAN-Software-Stacks Hohe Ein­stiegs­hür­den

Angular

Bei Angular – manchmal auch Angular 2 genannt – handelt es sich um den Nach­fol­ger von AngularJS. Das JS-Framework ist immer noch vorrangig für die Ent­wick­lung von Single-Page-Web­an­wen­dun­gen gedacht. Google hat aber teilweise sehr starke Ver­än­de­run­gen in der zweiten Version vor­ge­nom­men. Der größte Un­ter­schied dürfte sein, dass man nicht mehr Ja­va­Script, sondern Ty­pe­Script zur Pro­gram­mie­rung verwendet. Da die Pro­gram­mier­spra­che von Microsoft aber auf Ja­va­Script aufbaut und diese komplett in sich trägt, re­sul­tiert daraus keine direkte Ein­schrän­kung bei der JS-Ent­wick­lung. Zu­sätz­lich hat man Angular nun so angepasst, dass das Ent­wi­ckeln von An­wen­dun­gen auch über mehrere Platt­for­men hinweg (Desktop, Mobile, Tablet) kein Problem ist.

Vorteile Angular Nachteile Angular
Mehr Mög­lich­kei­ten dank Ty­pe­Script Keine einfache Migration von AngularJS zu Angular
Cross-Platform-De­ve­lo­p­ment Noch höhere Ein­stiegs­hür­den als beim Vorgänger

Ember.js

Auch Ember.js ist ein cli­ent­sei­ti­ges Framework, das für die Umsetzung von Single-Page-Web­an­wen­dun­gen ein­ge­setzt wird, mit dem man aber auch Desk­top­an­wen­dun­gen erzeugen kann. Ein Un­ter­schei­dungs­merk­mal zu AngularJS ist, dass die Macher von Ember.js die Community noch in­ten­si­ver in die Ent­wick­lungs­pro­zes­se des Frame­works mit­ein­be­zie­hen und be­deu­ten­de Än­de­run­gen am Framework mit dieser öf­fent­lich dis­ku­tie­ren, bevor sie umgesetzt werden. Ember.js wird als Framework ver­mark­tet, mit dem man am­bi­tio­nier­te Web­ap­pli­ka­tio­nen erstellt – dem­entspre­chend richtet es sich in erster Linie an Ent­wick­ler, die bereits Erfahrung mit der Kon­zep­ti­on von Web­an­wen­dun­gen haben.

Vorteile Ember.js Nachteile Ember.js
Wird durch Open-Source-Community ent­wi­ckelt Gerade für Ein­stei­ger sehr an­spruchs­voll
Lässt sich auch für Desk­top­an­wen­dun­gen einsetzen  

Vue.js

Auch bei Vue.js handelt es sich um ein Ja­va­Script-Framework zur Ent­wick­lung von Single-Page-Web­an­wen­dun­gen, das an Angular und React erinnert. Die Ent­wick­ler des relativ jungen und auf­stre­ben­den Projekts haben Vue.js bewusst so gestaltet, dass gerade Anfängern der Einstieg ver­gleichs­wei­se leicht fällt. So ist es zum Beispiel möglich, Templates in HTML ein­zu­bin­den. Darüber hinaus soll Vue.js auch sehr viel flexibler sein als viele andere Frame­works, die für ge­wöhn­lich die Art und Weise, wie man mit dem Framework umgeht, starr vorgeben.

Vorteile Vue.js Nachteile Vue.js
Schnell zu erlernen Wenig komplex
Un­ter­stützt HTML & CSS Ver­gleichs­wei­se kleine Community
Flexible Ent­wick­lungs­mög­lich­kei­ten  

Meteor

Meteor – manchmal auch MeteorJS genannt – ist ein JS-Framework, das sich besonders gut für Cross-Platform-De­ve­lo­p­ment eignet. Es er­mög­licht Ent­wick­lern, mit dem gleichen Code sowohl Web­an­wen­dun­gen als auch Mobile-Apps zu erstellen. Weiterer Vorteil: Än­de­run­gen im Code können dank des eigens ent­wi­ckel­ten Dis­tri­bu­ted Data Protocol (DDP) direkt an Clients wei­ter­ge­lei­tet werden. Über das kos­ten­lo­se Framework hinaus bieten die Her­stel­ler von Meteor auch Galaxy an: Hierbei handelt es sich um eine kos­ten­pflich­ti­ge Plattform. Ent­wick­ler können den Cloud-Dienst nutzen, um ihre Projekte zu ver­öf­fent­li­chen und zu hosten. Das Ja­va­Script-Framework läuft auf Node.js-Basis – daher ist es auch beim Ent­wi­ckeln mit Meteor sehr sinnvoll, Kennt­nis­se der Ent­wick­lungs­um­ge­bung zu haben. Mit Meteor erstellen Sie Backend und Frontend in einem Guss, ohne die Sprache zu wechseln – ein re­vo­lu­tio­nä­res Konzept, dass sich al­ler­dings noch nicht durch­ge­setzt hat.

Vorteile Meteor Nachteile Meteor
Cross-Platform-De­ve­lo­p­ment Funk­tio­niert nur mit MongoDB und nicht mit anderen Da­ten­bank­ty­pen
Hosting-Platform Galaxy Um­stel­lung des Backends notwendig
Lässt sich mit Angular, React und anderen Frame­works/Bi­blio­the­ken kom­bi­nie­ren Probleme mit Such­ma­schi­nen und Per­for­mance

Ja­va­Script-Frame­works im Überblick

  AngularJS Angular Ember.js Vue.js Meteor
Er­schei­nungs­jahr 2009 2016 2011 2014 2012
Main­tai­ner Google Google Ember Core Team Evan You Meteor De­ve­lo­p­ment Group
Lizenz MIT MIT MIT MIT MIT
GitHub-Con­tri­bu­tors ca. 1.600 ca. 570 ca. 700 ca. 700 ca. 370
Ar­chi­tek­tur MVVM/MVW MVC MVVM MVVM MVVM
Be­son­der­hei­ten Auch für Mobile- und Desktop-Apps ein­setz­bar Auch für Mobile- und Desktop-Apps ein­setz­bar Auch für Desk­top­an­wen­dun­gen ein­setz­bar Einfache Ein­ar­bei­tung Kom­bi­niert Backend und Frontend

Nützliche Werkzeuge für viele Bereiche

Frame­works und Bi­blio­the­ken können eine er­heb­li­che Er­leich­te­rung für die Arbeit mit Ja­va­Script bedeuten. Die oben vor­ge­stell­ten bilden nur einen kleinen Teil der ver­füg­ba­ren Tools. Eine gute Quelle für weitere Ja­va­Script-Frame­works, -Libraries und auch -Plug-ins stellt neben GitHub auch die Website www.ja­va­scrip­ting.com dar. Dort lassen sich passende Ja­va­Script-Er­wei­te­run­gen für diverse Zwecke finden.

Zum Hauptmenü