ReactEurope - Eine Retrospektive/Prospektive

2 Wochen ist es nun her, dass die ReactEurope in Paris und vor allem der dort real gefühlte Hype um "React" die Entwicklergemeinschaft im Web wieder einmal ordentlich angeheizt hat. Diese kleine Zusammenfassung soll in erster Linie dazu dienen, dass Thema "React" erst mal einzuordnen und für sich als Entwickler oder auch Unternehmer zu bewerten. Der Ausblick, welcher sicherlich subjektiven Charakter hat, soll uns ein wenig helfen etwas zu planen und einzuschätzen, was wir jetzt mit den Erfahrungen und dem Gelernten machen sollten.

Highlights

Ich hatte das Vergnügen an den 2 Tagen Workshop sowie den 2 Tagen Konferenz komplett teilnehmen zu können. Mein Fazit: "Ein sehr gut gelungenes Entwicklerspektakel", welches das gesamte ReactSpectrum bediente. Von Gedanken außerhalb des Tellerrands in Sebastian Markbåge's Talk "DOM as a Second-Class Citizen" über Matrix ähnlichen slowmo-Animationen von Cheng Lou's "The State of Animation" bis hin zu Einblicken in die Zukunft von Flux mit "Flux over the Wire" von Elie Rotenberg.

Herausragend

Der Höhepunkt war definitiv die Veröffentlichung des Working Drafts der GraphQL RFC Spezification. Lee Byron's Talk "Exploring GraphQL" war der Talk, auf den der Großteil der Teilnehmer gewartet hatte, obwohl GraphQL nichts direkt mit React zutun hat. Die Erwartungen wurden von den Jungs Lee, Dan und Nick von Facebook voll und ganz erfüllt (Working Draft & Reference implementation for JavaScript). Die Community haute noch am selben Tag in die Tasten. Erste "Getting startet", z.B. GraphQL/NodeJS/MongoDB, sind bereits vorhanden und es werden sicherlich viele weitere folgen. Die hohen Erwartungen eines Releases von "Relay" wurden dadurch etwas besänftigt und die in Joseph Savona's Talk "Relay: An Application Framework For React" angesprochene Veröffentlichung im August wurde dann natürlich still "akzeptiert".

Dan Abramov stach ebenso heraus mit seinem Talk über "Hot Reloading & Redux". Developer Experience - kurz DX - ist z.Z. ein heißes Thema. Jeder, der "Hot Reloading" einsetzt, in welcher Form auch immer, kann es sich ohne nicht mehr vorstellen. Dan's Ansatz der "Reducer-Function" und des "Time Travellers" gibt dem Ganzen das Sahnehäubchen.

Ryan Florance und Michael Jackson legten im 2-tägigen Workshop und im unterhaltsamsten Talk während der Konferenz eine Glanzleistung hin. Im Workshop waren die Jungs unschlagbar gut und vermittelten neben den Grundlagen rund um React auch erweiterte Techniken für die Praxis: "What state is there?" und "Where is it changed?" wird uns noch eine Weile verfolgen. Der Talk über "React Router" ging beinahe in die Hose - aber das macht eben ein Profi aus - live 'debugging', live 'gitting' und live 'npming' mit der Pistole am Kopf in 5 Minuten ... und es lief ... "herrlich", ein "Must See".

Interessant

Am meisten brachte mich der Talk von Sebastian Markbåge "DOM as a Second-Class Citizen" ins Grübeln und sollte unbedingt angesehen werden. Der Gedanke dahinter ist doch ziemlich faszinierend. Was auch sehr gut in der breiten Masse ankam, waren die "Lightning Talks". Der direkte praktische Bezug war schnell einleuchtend und somit referenzierbar auf evtl. eigene Projekte oder Probleme. Nennenswert war hier der Vortrag von Dave Brotherstone über "TROUSRS.JS".

Einsatzbereit

Die Themen bei denen wir als Entwickler sofort Hand anlegen können bzw. die Module, welche sofort eingesetzt und genutzt werden können wurden dominiert durch Dan Abramov's "Hot Reloading & Redux" (Repos), Michael Jackson's "React Router" (Repo), Spencer Ahren's "React Native" (Repo), Cheng Lou's "React Animation" (Repos) und Ryan Florance's Talk über "Don't Rewrite! React!". Aria Buckles gab mit "Building submarines that don't leak" eine guten Überlick über häufige Stolpersteine und Pitfalls im Umgang mit React Komponenten und gab interessante Lösungsansätze mit auf den Weg.

Wrap-up

Definitiv ist das Thema "React" & Co. extrem aufregend und wir - als offene Entwicklergemeinschaft - sollten definitiv auf diesen Zug aufspringen - in welcher Form auch immer. Es wird hier offensichtlich an grundlegenden Ansätzen und Strukturen gefeilt und daran sollten wir alle teilhaben. Der einfache, deklarative und auf zusammensetzbaren Komponenten basierte Ansatz wird hier von React und der Erweiterung JSX neu definiert. Die Macher von React und die Community sind hier definitv allen Anstrengungen allgemeingültige Standards zu entwerfen einige Schritte voraus.

Auch das "Sharing"-Credo genau dieser starken Gemeinschaft wurde auch auf dieser Konferenz hoch gefeiert. Statements wie "Thanks to everybody who contributed...", "We will share with you..." und "Please join the community and contribute..." endeten stets im Applaus - richtig und weiter so.

Ausblick

Die Vorteile überwiegen klar, oder? Die Community ist doch schon überzeugt, richtig? Und irgendwie ist "React" auch ziemlich cool, oder nicht? Also, wann fangen wir damit an? ... Meine persönliche Antwort: "Gestern!"

Jedoch kommt uns diese Situation doch bekannt vor ... Wir befinden uns auch mit "React" zur Zeit an dem "berühmten" Punkt im Hype-Zyklus, welcher "Der Gipfel der überzogenen Erwartungen" oder "Peak of Inflated Expectations" genannt wird. Darauf folgt im Allgemeinen ein Tal - das "Tal der Enttäuschungen" oder "Trough of Disillusionment" - bei welchem wir als Community jetzt die Kontrolle über die Tiefe das Falles haben. Wir Entwickler haben es also in der Hand, ob die zukünftig entwickelten Techniken und Bibliotheken an die Erwartungen der Visionäre herankommt. Umso kürzer dieser Fall, desto schneller wird der "Pfad der Erleuchtung" oder "Slope of Enlightenment" durchgangen, auf welchem sich robuste und produktiv einsatzfähige Software etablieren wird.

In der Webtechnology ist dieser Zyklus heute sehr kurz, was es um Einiges schwieriger macht ihn zu beherrschen. Der Vorteil dieser Sichtweise ist eine 'gewisse' Planbarkeit, besonders für Unternehmer, welche Entwicklerressourcen planen und strategische Technologieentscheidungen treffen müssen. Auch "React" wird, wie auch bereits viele andere Technologien zuvor (z.B. AngularJS, jQuery etc.), diesen Zyklus ebenso durchlaufen. Wenn sich die Idee von "React" durchsetzt - davon gehen wir mal aus - dann fallen offensichtlich bereits etablierte und produktive Technologien hinten runter und werden nach und nach ersetzt. Es könnte dann auch so kommen, dass in 2 Jahren wenig über "React" geredet wird, sondern über eine nächste bzw. andere Technologie. Ich nenne das Evolution. Als planender Stratege ist man durchaus verwirrt und die Angst auf das falsche Pferd in seinen Projekten zu setzen schwingt immer irgendwie mit. Heißt die Strategie also "Early Adoption of new Technology", "Flexibility of Development Ressources" und "Agility in Knowledge Management"? Die Antwort ist hier eindeutig: JA, das heißt es!

Was wäre zutun?

Wir sollten uns ALLE intensiv und aktiv an dieser Entwicklung beteiligen - und damit meine ich nicht nur die JavaScript Entwickler, sondern auch ProduktManager, Grafiker, UI/UX-Designer, SQA-Spezialisten, Datenbankexperten und Systemarchitekten. Sprich diejenigen, welche uns Entwickler in erster Linie mit Anforderungen versorgen, auf diese wir reagieren müssen.

Als Entwickler sollten wir uns jede menge Playground-Repos schaffen, forken, experimentieren, analysieren und mit der Community teilen. Somit schaffen wir die Grundlagen für eine solide Bewertung für die planende Unternehmerschaft. Wir sollten an diesem Evolutionsschritt des Webs intensiv mitwirken - und meiner Ansicht nach ist "React" und alles was sich drumherum ansiedelt genau als solch ein Schritt zu bewerten.

Als Unternehmer sollten wir das Engagement der Community fördern und vor allem Zeit im Unternehmen für das schnelle Erlernen neuer Technologien bereitstellen. Wir sollten unsere Antennen etwas höher ausfahren, um den notwendigen Überblick zu behalten und entsprechend reagieren zu können. Es sollte auch nicht auf Teufel komm raus alles "umgestrickt" und auf React umgebaut werden. Wir sollten uns vielmehr damit beschäftigen wie wir die Vorteile von React wie ClientSide-Performance, Code-Maintainability, Simplicity oder Scalability in unseren jetzigen oder zukünfitgen Projekten verwerten können.

Fazit

Es ging bei der ReactEurope definitiv um weitaus mehr als nur um "React". Ich würde die Konferenz eher als "React, Europe!" interpretieren, welche uns ein wenig wachrütteln und zum Umdenken bewegen soll. Es sind viel mehr die Konzepte dahinter, als eine als "View-Layer only" definierte Bibliothek. Vieles steht am Anfang seiner Entwicklung und es ist wahnsinnig spannend wo die Reise da noch hingehen wird. Der Unterschied zu anderen Konferenzen ist, dass im Kern grundlegende Strukturen hinterfragt und neugedacht wurden. Und wenn man länger über Sebastian's Talk nachdenkt, wird sogar der Browser irgendwie in Frage gestellt: "React -> Components -> UI-Descriptor -> GPU" Ich find es jedenfalls faszinierend!

Bitte diskutiert über Eure Erfahrungen von der ReactEurope! Falls ihr noch interessante Repos auf Euren Schirmen habt, welche mit den Themen der Konferenz zutun haben - bitte schreibt entsprechende Kommentare!

Links

Andere Berichte und Notizen gibt es hier: + Andreas Taube's "Current State of React" + Emil's, Jocke's and Woll's summary + Pete Vilter's Notizen + Grgur Grisogono's highlights + Martijn Faassen's thoughts + Andreas Eldh's summary

Alle Videos der Talks: + ReactEurope Youtube Channel