Der JavaScript Day auf der IPC 2012

Edles JavaScript zum Tuning von Web-Anwendungen
Kommentare

Das Vertrauen der Kunden ist gestiegen und der Bedarf groß geworden: JavaScript wird mehr und mehr zum Pflicht-Skill in der Web-Entwicklung. Zusätzlich lässt sich die Event-Architektur für verkürzte Wartezeiten nutzen. Wie wir das machen, und wie wir es gut machen, zeigten uns die Speaker des JavaScript Days auf der IPC12.

JavaScript ist im Enterprise-Umfeld angelangt. Doch wie steht es um die Tugenden wie Qualitätssicherung und Testbarkeit? Entwickler dürfen mittlerweile auf ein gutes Repertoire von Werkzeugen zurückgreifen, und tendenziell soll sich die Situation sogar bessern. Dies zeigte Sebastian Springer (Mayflower) in seiner ersten Session zu JavaScript QA, in der er Tests mit Jasmine und Continuous Integration mit Jenkins vorführte. Und dank JSLint wird der Entwickler auch zu gutem Stil angehalten, wenn er mit der Scriptsprache seinem DOM mehr Dynamik verleiht.

Über Dynamik und Animationen klärte uns anschließend Tobias Reiss (Uxebu) auf, der mit seiner Bibliothek Bonsai etliche Effekte an die Leinwand zauberte. Doch wieso wollen wir drehende Quadrate zeichnen? Weil wir es können, und weil wir es müssen! Der Flash Player wurde für iOS von Haus aus verbannt, und auch auf Android gibt es für ihn keine Updates mehr. Somit müssen sich Web-Entwickler für die Mehrheit ihrer Mobile-Besucher nach einer Alternative umschauen. Genau deswegen wurde Bonsai entworfen: Es soll Flash zu einhundert Prozent ersetzen. Doch wie tut es das?

Mit HTML5 kommen eine Reihe neuer Rendering-Möglichkeiten ins Web: SVG und Canvas zeichnen 2D-Flächen, WebGL erlaubt räumliche Formen, und CSS3 liefert Post Processing. Natürlich sind die Standards noch im Fluss, teilweise sogar Living Standards, also nie wirklich final. Die fragmentierte Browser-Landschaft macht es für Entwickler zusätzlich zur Tortur, diese Technologien korrekt zu nutzen. Genau dieses Kopfzerbrechen soll Bonsai den Entwicklern ersparen und dabei sogar die Syntax von Flash erhalten, sodass wir vorhandene Skills weiternutzen können.

Doch ginge es nur um drehende Quadrate, dann wäre am Anfang des Tages nicht der Aufschrei nach mehr Qualität in der JS-Entwicklung laut geworden. JavaScript kann noch viel mehr, wie Martin Schuhfuß (spot-media) zu Event-getriebenen Architekturen demonstrierte: Events können der heilige Gral in Sachen Nebenläufigkeit sein, doch wenn man mit ihnen nicht vorsichtig umgeht, können sie auch den kompletten Workflow zum Stillstand bringen.

Diese nicht-blockierenden Funktionen kennt man sowohl aus jQuery als auch serverseitig aus Node.js. Über Listener erlauben diese Architekturen, dass die Anwendung weiterläuft und responsiv bleibt, obwohl im Hintergrund langsame Aufgaben noch abgearbeitet werden. In der Praxis kann das so aussehen, dass der Server dem Benutzer ein „Prozess im Gange“ sendet, während im Hintergrund noch eine Datei hochgeladen wird.

Die Idee von Events ist in unserem Alltag bereits überall vertreten, wie uns Schuhfuß anhand eines Beispiels erläutert: Ein Kellner in einem Restaurant könnte nur einen einzigen Gast bedienen, würde er jedes Mal vor der Küche warten, bis der Koch mit dem Hauptgericht fertig ist. Der Event-getriebene Kellner geht anstatt zu warten zum Eingang und weist dem nächsten Gast bereits einen Sitzplatz zu. Erst wenn in der Küche ein Glöckchen läutet, springt sein Listener an und die Methode „bediene den Gast“ wird weiter ausgeführt. Somit brauchen wir für viele Gäste nur einen einzelnen Kellner.

Im Prozessor bedeutet das, dass etliche Tasks in einem einzelnen Thread abgearbeitet werden können. Dies ist speichereffizienter als Blockaden mit etlichen Threads zu umschiffen. Doch bricht dieses System leicht zusammen, wenn einer der Tasks besonders viel CPU-Zeit vereinnahmt. Node kann hierfür (in Browsern, die dies beherrschen) Webworker starten, die neue Threads öffnen und den Event-Loop nicht ausbremsen. Optional lassen sich die Prozesse auch auf externe Maschinen auslagern, sodass dem eigenen Server die ganze Rechenarbeit erspart bleibt.

State of JavaScript

Wir haben gelernt: JavaScript kann sicher sein, Rich-UIs effizient und umfangreich umsetzen und Server beim Abarbeiten zahlreicher Tasks unterstützen. Der wachsende Pool an Tools und Test-Möglichkeiten macht es für Enterprise-Entwicklung attraktiver, und hilfreiche Bibliotheken lösen derartig viele Probleme, dass man im Web nicht mehr auf sie verzichten sollte, will man vorne mitspielen.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -