Dr. Florian Rappl im Interview

Inferno – React auf Speed?!
Kommentare

Am Himmel der JavaScript-Frameworks gibt es beinahe unzählbar viele Sterne. Eines davon ist das Projekt Inferno, das seinerseits auf Facebooks React basiert. Auf der gerade in München stattfindenden International JavaScript Conference stellt Dr. Florian Rappl, Technical Consultant und Solution Architect bei Zeiss Digital Innovation, das Projekt den Besuchern vor. Im Interview spricht er darüber, worin sich Inferno von React unterscheidet und welche Features ihm noch fehlen.

Am Mittwoch, 25. Oktober 2017, führt Dr. Florian Rappl in seinem Talk Inferno – React on Speed? auf der International JavaScript Conference in München die Besucher in die Grundlagen des JavaScript-Frameworks ein. Dabei geht er unter anderem der Frage auf den Grund, warum es sich lohnt, von React auf Inferno zu migrieren und welche Probleme dabei auftauchen können.

Abstract:
In recent times React has attracted quite a lot of attention despite its poor performance on mobile. The cure for this problem did not come from a big corporation, but instead originated within the open-source community. The personal project Inferno flourished into a whole community, which created a serious competitor to React. This library promises an improved performance, nearly fully-compatible API, and a more focused solution than React. Why do we want to migrate away from React? What obstacles have to be faced in the migration? Is the migration worth the efforts? In this talk we will hear the story of a large cross-platform mobile application that was migrated from React to Inferno.

Hallo Florian und vielen Dank, dass du dir die Zeit genommen hast. Auf der iJS stellst du in deiner Session das Projekt Inferno vor, ein auf React basierendes Framework. Welche Vorteile bietet Inferno gegenüber React?

Florian Rappl: Inferno stellt eine Implementierung des React APIs dar und kann somit als Drop-in Replacement verwendet werden. Dies ist vor allem dann sinnvoll, wenn man speziellere Anforderungen hat (z.B. die von React vorgegebene Lizenz nicht akzeptiert wird und es sich um eine reine Webapplikation handelt) oder einige Nachteile der Referenzimplementierung umgehen möchte. Von der Tooling-Seite bietet Inferno nahezu denselben Komfort wie React, lediglich kleine Anpassungen, z.B. durch Deklaration eines Import Alias, sind für eine erfolgreiche Migration notwendig.

Eine möglichst hohe Performance ist in der Webentwicklung kein geringer Faktor, der über den Erfolg oder Mißerfolg eines Frameworks entscheiden kann. Mit welchen Mitteln wurde die Performanz von Inferno erhöht?

Florian Rappl: Inferno versucht gar nicht erst so generisch zu sein wie React. Durch geschickte Reduktion von Abstraktionen und die damit einhergehende Verwendung von besseren Algorithmen konnten einige unnötige Aufrufe und Schleifen eliminiert werden. Seit React 16 (kürzlich erschienen) sind die Performanceunterschiede jedoch meiner Meinung nach nicht mehr relevant.

Das perfekte Framework existiert vermutlich (noch) nicht und auch Inferno wird da keine Ausnahme machen. In welchen Bereichen könnte deiner Meinung nach noch ein wenig nachgelegt werden, oder besser: Welche Features fehlen dir in Inferno?

Florian Rappl: Inferno ist sicherlich nicht so komplett wie React. Dies sorgt für Einschränkungen, die allerdings in dem gegebenen Kontext sehr sinnvoll sind. Zum Beispiel gibt es keine String-Referenzen, sondern nur Callbacks. Im Allgemeinen ist man hundertprozentig Inferno-kompatibel, wenn man vorher immer Best Practices befolgt hat. Wer Inferno benutzt, sagt aus gutem Grund „ja“ zu den Einschränkungen. Ich persönlich vermisse nichts, mutmaßlich könnte man jedoch z.B. Error Boundaries in die Liste der Features aufnehmen, die eine sinnvolle Ergänzung zu Inferno darstellen würden.

API Summit 2017

Moderne Web APIs mit Node.js – volle Power im Backend

mit Manuel Rauber (Thinktecture), Sven Kölpin (Open Knowledge)

API First mit Swagger & Co.

mit Thilo Frotscher (Freiberufler)

Bei der Migration von einem Framework zum nächsten kommt es zu zahlreichen Problemen, die du ebenfalls in deiner Session anhand eines Beispiels darlegen wirst. Mit welchen Problemen müssen Entwickler bei der Migration rechnen?

Florian Rappl: Das größte Problem sind Third-Party Dependencies. Bei der Vielzahl an Abhängigkeiten in großen JavaScript-Projekten wird man garantiert auf Bibliotheken oder Komponenten stoßen, die partout nicht mit Inferno zusammenarbeiten wollen. Wichtig ist hierbei die anschließende Evaluation: Brauche ich dieses Paket wirklich? Kann ich die Komponente(n) selber bauen oder maintainen? Gibt es eine bessere Alternative? Könnte ich die Kompatibilität irgendwie durch z.B. einen Shim erzeugen?

Gibt es Best Practices, die sich in der Vergangenheit bei solchen Unterfangen bewährt haben?

Florian Rappl: Leider existiert keine Blaupause. Es gibt ein Vorgehensmuster, das sich durchaus bewährt hat, um die Probleme zu identifizieren und gegebenenfalls zu beseitigen, jedoch sind die Probleme meist stark an die Rahmenbedingungen vom Projekt gekoppelt. Im Vortrag werden die wichtigsten Schritte zur Entscheidungsfindung aufgezeigt.

Welches ist die Kernaussage, die jeder Besucher deiner Session mit nach Hause nehmen sollte?

Florian Rappl: React ist mehr als eine Library von Facebook. React ist eine (alternative bzw. moderne) Art, Applikationen zu schreiben, welche durch eine Referenzimplementierung (von Facebook) gestützt wird. Die meisten Tools und Bibliotheken sind unabhängig von der konkreten Implementierung und können auch mit Alternativen zusammenarbeiten, die durchaus Vorteile gegenüber der Referenz haben können.

Vielen Dank für dieses Gespräch!

Dr. Florian Rappl
Florian Rappl is working as a technical consultant and solution architect with emerging IoT technologies. Florian is regularly giving lectures, talks, and workshops about software development, architecture, or programming languages. His main interest lies in highly-scalable backend architectures with energy-efficient implementations. He is also involved in the creation of innovative user-interaction models that enhance human-machine interaction. He won several prizes and is a Microsoft MVP in the area of development technologies.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -