Dr. Marius Hofmeister & Stephan Rauh im Interview

Angular 5 vs. React – Wer hat wo die Nase vorn?
Kommentare

Für die Frontend-Entwicklung in JavaScript gibt es eine Menge guter Frameworks. Die beiden populärsten sind aktuell React.js und Angular 5. Im Zuge der International JavaScript Conference in München vergleichen Dr. Marius Hofmeister, Consultant und Entwicklungsleiter in Kundenprojekten bei OPITZ CONSULTING Deutschland, und Stephan Rauh, Senior Consultant bei der OPITZ CONSULTING Deutschland GmbH, die beiden Frameworks miteinander. Im Interview sprechen sie über deren Unterschiede und Gemeinsamkeiten sowie darüber, worin sie sich von anderen Frameworks unterscheiden. Wir haben sie zudem gefragt, welches JavaScript-Framework für sie der vielversprechendste Newcomer ist.

Am Mittwoch, 25. Oktober 2017, vergleichen Dr. Marius Hofmeister und Stephan Rauh in ihrem Talk Angular 5 vs. React auf der International JavaScript Conference in München die beiden beliebten JavaScript-Frameworks für die Frontend-Entwicklung miteinander. Dabei stehen unter anderem konkrete Anwendungsfälle im Fokus, also wann man welches Framework nutzen sollte.

Abstract:
Dieser Vortrag vergleicht die aktuelle Version von Angular mit React. In welchem Bereich hat welches dieser beiden Frameworks die Nase vorn? Für welche Aufgabe eignet sich Angular besser, für welche verwenden Sie besser React?

Hallo Stephan, hallo Marius und vielen Dank, dass ihr euch die Zeit genommen habt. In der großen weiten Welt der JavaScript-Frameworks haben sich in der letzten Zeit Angular und React für die Frontend-Entwicklung im besonderen Maße hervorgetan. Welche Vorteile bieten die beiden Frameworks im Vergleich zu anderen Frameworks wie Ember.js, Vue.js, Polymer o.ä.?

Marius Hofmeister & Stephan Rauh: Jedes dieser Frameworks hat seine Vorteile und eine große Fangemeinde. Wir konzentrieren uns auf Angular und React, weil diese beiden Frameworks von unseren Kunden am meisten nachgefragt werden. Nach unserem Eindruck haben Angular.js und später React.js den Markt durcheinandergewirbelt und viele etablierte Frameworks verdrängt. Neben den technischen Aspekten gefällt uns an Angular und React, dass beide eine große, aktive und hilfsbereite Community haben und von großen Firmen entwickelt werden. Das sorgt für eine gewisse Investitionssicherheit.

Bei den drei Frameworks, die Du genannt hast, sehen wir mehr Gemeinsamkeiten als Unterschiede. Das zentrale Element von Polymer sind Komponenten. Das gleiche gilt für React und die aktuellen Angular-Versionen. Mit Ember.js haben wir noch nicht selber gearbeitet. Nach den Blogs, die ich (Stephan) gelesen habe, scheint es sich um ein Framework zu handeln, dass mancherlei Ähnlichkeiten mit Angular hat, aber den Programmierer noch stärker führt. Demnach verhält sich Ember.js zu Angular ähnlich wie Angular zu React: es erkauft sich eine größere Entwicklungsgeschwindigkeit, indem es Flexibilität opfert und dem Entwickler strikte Vorgaben macht.

Vue.js verspricht spannend zu werden. Es ist ein neues Framework, dass als leichtgewichtige Essenz von Angular.js konzipiert wurde. Leider hatten wir bisher auch in Bezug auf Vue.js noch nicht die Gelegenheit, tatsächlich damit zu arbeiten, und sind – vorläufig zumindest – auf die Aussagen Dritter angewiesen. Ein ehemaliger Kollege von mir (Stephan) behauptet, dass Vue.js wie Angular sei – nur diesmal sei alles richtig gemacht worden. Ob es sich am Markt durchsetzen wird, ist eine ganz andere Frage. Auf jeden Fall wird es sowohl Angular als auch React neue Impulse geben.

Das scheint uns der eigentlich spannende Aspekt zu sein. Jedes der großen, etablierten Frameworks am Markt beobachtet die Fortschritte der anderen Frameworks. Ideen, die sich bewähren und zur eigenen Philosophie passen, werden häufig übernommen. Auf diese Weise werden alle gemeinsam besser.

Eure Session trägt ja passenderweise den Titel „Angular 5 vs. React“. Welche Unterschiede gibt es zwischen den beiden Tools?

Marius Hofmeister & Stephan Rauh: Von der Philosophie her ist Angular ein vollständiges Framework, dass Lösungen für fast alle Aufgaben eines Frontent-Entwicklers bietet. React hingegen konzentriert sich darauf, Komponenten zu bilden und diese effizient anzuzeigen. Routing, Validierung, Kommunikation mit dem Backend und so weiter sind Aufgaben, die React bewusst außer Acht lässt.

In der Praxis sieht es anders aus: Jeder erfahrene React-Entwickler hat seine eigene Sammlung von Libraries, die diese Aufgaben erledigen. In der Summe haben React-Entwickler also üblicherweise ein Framework, das genauso vollständig ist wie Angular. Der Unterschied ist nur, dass man sich am Anfang die passenden Libraries suchen muss, und dass immer die Gefahr besteht, dass eine dieser Libraries nach einem Update von React nicht mehr funktioniert. Bei Angular bekommt man stattdessen das Rundum-Sorglos-Paket, bei dem sich das Angular-Team um solche Dinge kümmert. Anders ausgedrückt: bei Angular erkauft man sich Sicherheit, indem man Flexibilität opfert.

Für beide Frameworks gibt es sicher Anwendungsfälle, für die jeweils das andere besser geeignet ist. Gibt es denn auch Anwendungsfälle für die beide Frameworks eher nicht zu gebrauchen sind?

Marius Hofmeister & Stephan Rauh: Im Prinzip kann man mit beiden Frameworks alles machen: Angular eignet sich besser, um die typischen Formularanwendungen für Büroumgebungen zu implementieren. Es sei denn, die Datenmengen werden sehr groß, oder es gibt viele Interaktionsmöglichkeiten. Wenn viele Dialogelemente viele andere Elemente beeinflussen können, und es zudem noch auf Performance ankommt, hat React immer noch die Nase vorn – auch wenn Angular im Vergleich zu Angular.js stark aufgeholt hat. Nach unserem Eindruck ist React insbesondere bei der Entwicklung von interaktiven Webseiten populär. Nicht zuletzt deshalb, weil die Dateigröße der resultierenden Anwendung bei React.js (noch?) kleiner ist.

Wenn es darum geht, mobile Geräte oder auch einen Desktop-PC optimal zu unterstützen, raten wir sowohl von React als auch von Angular ab. Auch wenn es erstaunlich ist, was mittlerweile alles geht: für eine optimale Unterstützung geht nichts über eine native Entwicklung. Eine gängige Anforderungen ist zum Beispiel die nahtlose Integration von Excel mit der Business-Anwendung. Selbst mit HTML 5 ist das immer ein Kompromiss.

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)

Gibt es in Sachen Frameworks ein interessantes Newcomer-Projekt, von dem ihr empfehlt, es im Auge zu behalten? Und wenn ja, wieso gerade dieses?

Marius Hofmeister & Stephan Rauh: Vue.js ist solch ein spannendes Projekt. Momentan sieht es so aus, als hätte es mehr Impact als Aurelia. 70.000 Sterne auf GitHub zeigen, wie stark die Entwicklergemeinde an Vue.js interessiert ist.

In letzter Zeit haben es Newcomer-Projekte schwer. Heutzutage reicht es nicht mehr, ein gutes Framework zu bauen. Es reicht auch nicht mehr, ein Framework zu bauen, dass besser als die Konkurrenz ist. Inzwischen gehört viel mehr dazu. Die Toolchain und das Ökosystem sind mittlerweile wichtiger als das Framework selbst. Beispielsweise bieten die meisten gängigen IDEs Support für Angular und für React. Die Angular CLI sorgt für einen schnellen Start bei Projektbeginn. Die Redux DevTools bieten unter anderem einen Time-Travelling-Debugger, der alleine schon ein Killerargument für React ist. Damit muss ein neues Framework erst einmal mithalten.

Welche Erkenntnis oder Lehre sollten die Besucher eurer Session in jedem Fall aus eurem Vortrag mitnehmen?

Marius Hofmeister & Stephan Rauh: Unser Vortrag zeigt, dass es bei der Entscheidung für Angular oder für React nicht nur auf die Technik ankommt. Klar: die spielt manchmal auch eine Rolle. Wir haben versucht, ein paar objektive Kriterien festzulegen. Als ich (Stephan) diese Kriterien neulich auf BeyondJava.net veröffentlicht habe, gab es von der JavaScript-Gemeinde gemischte Reaktionen. Sie reichten von „völliger Blödsinn“ bis „ja, stimmt“.

Angular und React lösen ähnliche Aufgaben, wenn auch mit unterschiedlichen Ansätzen. Die Entscheidung hängt daher auch ganz wesentlich vom Team ab. Hat es jahrelange Erfahrungen mit JavaScript? Dann ist React vermutlich das Tool der Wahl. Teams mit einem starken Java-Background fühlen sich eher mit Angular wohl. Nicht zuletzt wegen TypeScript: es bietet viele Strukturen, die Java-Entwickler bei JavaScript vermissen. JavaScript-Profis werden dagegen häufig von TypeScript abgeschreckt. Sie vermissen das gewohnte Gefühl der Freiheit, das durch das starke Typsystem von Typescript verloren geht. In der Theorie schränkt es hauptsächlich die Freiheit, Fehler zu machen, ein. In der Praxis jedoch gibt es tatsächlich oft Probleme, bestehende JavaScript-Bibliotheken mit TypeScript zu verwenden. Projekte wie Definitely Typed sind eine große Hilfe, aber sie sind noch nicht perfekt. Wahrscheinlich ist das auch ein starker Treiber für Projekte wie Aurelia und Vue.js: die führenden Köpfe hinter diesen Projekten waren nicht bereit, alle Entscheidungen des Angular-Teams mitzugehen. Und die Entscheidung für TypeScript und gegen JavaScript gehört dazu.

Viele Diskussionen drehen sich auch um das MVVM-Paradigma. Es bietet Strukturen, die Angular-Entwickler gerne benutzen. React hat es geschafft, Paradigmen wie MVC und MVVM zu überwinden. Die Konzentration auf Komponenten bietet ebenfalls Strukturen – nur eben andere. Auch das zeigt: die Entscheidung für Angular oder für React ist zu großen Teilen eine Frage der Präferenzen des Teams.

Vielen Dank für dieses Gespräch!

Dr. Marius Hofmeister
Marius Hofmeister ist als Consultant und Entwicklungsleiter in Kundenprojekten bei OPITZ CONSULTING Deutschland beschäftigt. Er widmet sich schwerpunktmäßig dem Entwurf und der Implementierung moderner Webanwendungen in Back- und Frontend.
Stephan Rauh
Stephan Rauh arbeitet als Senior Consultant bei der OPITZ CONSULTING Deutschland GmbH und hat dort das Competence Center „modern clients“ aufgebaut. Er befasst sich seit Jahren als Architekt, Trainer und Coach mit JSF und Angular und ist durch seinen Blog http://www.beyondjava.net sowie seine Open-Source-Projekte AngularFaces und BootsFaces bekannt geworden.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -