FutureJS 2014

13.05.2014 Bild

Web, Browser, Javascript und Zukunft - das waren gute Gründe um Barcelona am 2. und 3. Mai einen Besuch abzustatten, um auf der FutureJS zu lernen, was uns in nächster Zeit erwartet oder was wir sogar schon heute einsetzen können. Das Organisationsteam hat sich dabei ordentlich ins Zeug gelegt, um die Konferenz zu einer sehr guten und lehrreichen Erfahrung zu machen. Wer nicht dort war, kann bald die Talks in der dazugehörigen Youtube Playlist nachsehen, die gerade täglich befüllt wird, oder sich auf Lanyrd die Slides durchschauen. Davor oder zur Übersicht hier eine Zusammenfassung über die Themen.

Javascript Spracherweiterungen oder Alternativen

Gleich zu Beginn hat Reginald Braithwaite in Invent the Future, Don't Recreate the Past eine Übersicht über die Wurzeln von Javascript gegeben und wohin es sich entwickeln kann. Dabei hat er auch die Wichtigkeit der Community unterstrichen, um die Sprache weiterzuentwickeln. Dieses Thema hat James Coglan in A Languages in 20 Minutes gleich aufgenommen, um in unter einer halben Stunde einen kleinen Lisp Parser zu schreiben und zu zeigen, wie leicht es ist, mit der Programmiersprache selbst zu experimentieren. 

Am zweiten Tag ging es in der Früh bei Jeremy Ashkenas in JS.Next and CoffeeScript direkt um CoffeeScript, welche Verbesserungen es zu direkten Javascript Code bringen kann oder welche Teile als Vorlage für die nächste Javascript Version dienen. Und genau dieses ECMAScript 6 war Thema von Patrick Dubroy in The Javascript of Tomorrow, Today, wobei nicht nur ein paar der neuen Features angesprochen wurden, sondern mit dem Traceur Compiler oder es6ify auch Möglichkeiten, es für heutige Browser zu übersetzen.

Audio & Graph

Nicht jedes Thema beschäftigte sich direkt mit Javascript. Bei Jaume Sánchez ging es in Everybody Dance Now with Web Audio API um eben diese API. Dabei erlauben die Browser Audio so frei zu behandeln, wie es schon mit Canvas etc. für Zeichenoperationen möglich ist. Anstatt nur eine fixe Liste von Samples zu verwenden, kann der Sound beliebig geteilt, vereint und in Blöcken gefiltert werden. Eine Möglichkeit sich einmal damit zu spielen bietet http://webaudioplayground.appspot.com/

Über visuelle Darstellung von Daten ging es bei Joanne Cheng in Beyond the Bar Graph: Creative Visualization with D3.js. In einer live Coding Session generierte sie aus den Daten des Sonnensystems mit D3.js in ein paar Minuten eine Darstellung der Größenverhältnisse. Ein weiteres Beispiel für die Möglichkeiten ist Kepler’s Tally of Planets.

Effizienz, Performance, übersichtlicherer Code

Effizienz in allen möglichen Formen war ein sehr wichtiger Themenblock der FutureJS. Bei Immutability, Interactivity & Javascript von David Nolen ging es um Datenstrukturen, die sich nicht ändern, und Operationen darauf, die immer neue zurück liefern. Mit dem Persistent Vector stellte er auch gleich die dazu passende Datenstruktur vor, die auch bei vielen Änderungen nicht zuviel Speicher verbraucht. Als Demonstration dazu gibt es http://jackschaedler.github.io/goya/, bei dem die Undo/Redo History so gespeichert wird.

Bild

Phil Leggetter hat in How to Build Front-End Web Apps that Scale die Konzepte hinter Bladerunner vorgestellt, die sich aber genauso in anderen Projekten umsetzen lassen, wie Unterteilung einer Applikation in Aspects mit den zugehörigen Assets, die sich dann auch einzeln entwickeln und testen lassen. Gerade zu letzteren unterstrich er auch noch die Wichtigkeit des MVVM Patterns bzw. des ViewModels.

Um das Abarbeiten von Event Streams ging es in Streaming and Event-Based Programming Using FRP and RXJS von Matthew Podwysocki. Sein Pattern von Observables und Filtern und Mapping Operationen wendet er dabei nicht nur auf Daten, die über eine Streaming API kommen, an, sondern genauso auf Drag & Drop oder Tasteneingaben. Damit sind weiterlaufende Events genauso einfach zu bearbeiten, wie statische Array Daten.

"Lego for the web" präsentierte Martin Naumann in Web Components - a Whirlwind Tour Thru the Future of the Web. Seine Präsentation selbst stellte dabei nicht nur die Web Components vor, bei denen sich eigene Tags im Markup definieren lassen, mit Shadow DOM etc., sondern war selbst auch mit diesen geschrieben. 

Bild

Mehr Richtung Javascript und weniger in den DOM Tree ging der View bei The Secrets of React's Virtual DOM von Pete Hunt. Mit eben diesem React werden auch View Komponenten angelegt, die aber bei jedem Rendering nur ein leicht-gewichtiges Virtual DOM anlegen, das sich schnell mit dem alten Zustand vergleichen lässt. Das tatsächliche DOM wird dann nur aktualisiert wenn unbedingt notwendig. Dadurch ist der Code auf jeden Fall einfacher als bei Data Binding mit definierten Abhängigkeiten und nach den vorgestellten Performances Tests auch schneller.

Games & Devices

Bei Five Keys to Success When Building HTML 5 Games stellte Jesse Freeman vor, was er in einem Jahr gelernt hatte, als er in einem Wettbewerb jeden Monat ein neues Spiel schreiben musste und wie HTML5 dabei keine Einschränkung war bzw. wie es auch leicht möglich ist Mobile zu unterstützen. Als Nebenbemerkung erwähnte er auch noch, dass Amazon für Kindle einen Store für Webapps anbietet.

Tosenden Applaus erntete Ben Foxall für A Conceptual Future for the Multi-Device Web. Die Präsentation war interaktiv konzeptioniert und bezog die Geräte im Publikum mit ein. So konnte er zeigen, welche Browser Features die Endgeräte unterstützen, eine schnelle Umfrage durchführen oder auch jedes Display als Teil eines Gesamtbilds nutzen. Seine eigenen Smartphones waren dabei auch Multi-Touch Eingabegeräte, wie auch ein Bluetooth Klicker mit zusätzlichen Sensoren. Wer auf unserer Einweihungsfeier war durfte auch die Inspiration zu einem Zeichen- und Rate-Spiel bereits erfahren.

BildBild

Blitzgewitter

In den Lightning Talks ging es darum Torrents mit Javascript zu streamen oder zu mounten, eine Art Coffeescript mit Lisp-artigen Makros, ein Webcam Stream wurde als GIF gestreamt, und es ging um Minimalismus in der Entwicklung.

Shameful plug

Wer sich jetzt denkt, er wäre auch gern dort gewesen oder "so mit Javascript arbeiten wäre meine Sache": Wir suchen noch einen Webdeveloper.