Aktuelles

React vs. Angular – wann ist was besser?

React und Angular sind zwei der beliebtesten Tools zur Erstellung von interaktiven Websites. Aber welches nutzt ihr wann am besten? Auf den ersten Blick wirkt es nicht unbedingt sinnvoll, Angular und React zu vergleichen, ist ersteres doch ein Framework und zweiteres nur eine Bibliothek. Allerdings fallen beide Namen sehr oft, wenn es um die Entwicklung von interaktiven Anwendungen geht. Dafür sind beide geeignet, ihre Ansätze sind aber sehr verschieden. Genau das soll dieser Vergleich deutlich machen. Was ist React? React ist eine Bibliothek, die dazu dient, die View-Komponente des Model-View-Controller-Ansatzes abzudecken, also die Seite der Anwendung, die der Nutzer sieht und mit ihr interagiert. Normalerweise liegt dafür ein DOM (Document-Object-Model) als Baumstruktur vor, das in HTML erzeugt wird und nur mit großem Aufwand zu traviersieren und zu verändern ist. Durch den Einsatz eines virtuellen DOMs, das einfacher zu manipulieren ist, ist die Bibliothek in der Lage, Interaktionen sehr schnell umzusetzen. React basiert auf JSX, also Javascript XML, das eine Erweiterung um Elemente aus XML direkt in Javascript ermöglicht. Zusätzlich wird HTML eingebunden. Ads_BA_AD("CAD3");AnzeigeWas ist Angular? Angular ist ein Framework zur Erstellung von Nutzeroberflächen nach dem Model-View-Viewmodel-Modell (MVVM). Im Gegensatz zum MVC-Modell fällt hier die Controller-Einheit weg, stattdessen wird durch das Viewmodel eine Verbindung beider Ebenen hergestellt. Das Framework ermöglicht es so, Interaktionen schnell und einfach umzusetzen. Der Ansatz der Macher ist es dabei, HTML so zu erweitern, dass die Skriptsprache selbst mit Interaktivität umgehen kann, entsprechend ist HTML hier die Grundlage des Codes, Javascript wird darauf aufgesetzt. Was spricht für React? Für React spricht zu allererst der Einsatz des virtuellen DOMs, mit dem der Aufwand einer Veränderung am tatsächlichen DOM extrem gering gehalten wird. Das sorgt dafür, dass die Anwendung sich immer sehr flüssig verhält, selbst wenn die dahinterliegenden Operationen durchaus komplex oder die Datenbanken sehr groß sind. Weiterhin ist React ja wie schon erwähnt nur eine Bibliothek und hat damit sehr wenig Zwänge für den Entwickler. Dieser kann nach Belieben zusätzliche Bibliotheken einbinden und vollkommen frei von Vorgaben an die Lösung seines Auftrags gehen, anstatt bestimmten Regeln und Vorgehensweisen folgen zu müssen. Weiterhin ist für React nur JSX zu erlernen, was für die meisten Entwickler nichts Neues sein dürfte. So ist der erste Einstieg vergleichsweise simpel und erfordert nicht viel Vorarbeit. Natürlich gilt das nicht für alle Komponenten wie beispielsweise React Flux, aber für die grundlegende Arbeit reichen geringe Vorkenntnisse. Was spricht gegen React? React alleine reicht kaum aus, um eine Website aufzubauen. Da es sich dabei nur um eine Bibliothek handelt, bietet es kein Grundgerüst, sondern nur einige spezifische Funktionen zum Schreiben von Anwendungen. Das kann in einem Projekt mit engem Zeitplan gegen React sprechen, da hier weitere Recherche nach zusätzlichen Lösungen einzurechnen ist. React glänzt nur, wenn die Website, auf der es eingesetzt wird, stark auf Interaktivität setzt. Wenn das allerdings nicht der Fall ist, bietet React nicht besonders viel oder wird komplizierter als andere Bibliotheken. Was spricht für Angular? Angular arbeitet mit HTML, CSS und Javascript, also verlangt es sehr wahrscheinlich nichts Neues von einem Entwickler. Außerdem schreibt sich so der Code weitaus kompakter, da im Grunde die HTML-Befehle nur erweitert werden, um Interaktivität zu ermöglichen. Vor allem Single-Page-Designs lassen sich so problemlos umsetzen und auch der Code dazu kann auf nur einer Seite konzentriert werden, statt zusätzliche Inhalte einbinden zu müssen. Durch das Double-Bind-Feature sind Elemente aus View und Model einander zugeordnet und ein Austausch in beide Richtungen ist problemlos möglich. Passiert also auf einer Seite eine Änderung, wird diese direkt auf die andere Seite übertragen, ohne das dafür spezielle Funktionen wie listener nötig sind. Dadurch müssen natürlich weit weniger Inhalte geladen werden und Anwendungen sind auch hier sehr responsiv. Außerdem sind Seiten auch mit Angular extrem schnell. Angular ist ein Framework, das bedeutet, es liefert direkt ein Grundgerüst zur Erstellung einer Website und kommt ohne zusätzliche Bibliotheken aus. Gerade, wenn nicht viele Komponenten für die Programmierung des Projekts genutzt werden sollen, ist Angular also durchaus eine sinnvolle Lösung. Was spricht gegen Angular? Da es ein Framework ist, ist Angular starrer in der Art, wie man damit programmieren kann und gibt mehr Grenzen vor. Und trotzdem ist es möglich, ein Problem auf mehrere Weisen zu lösen, was dazu führen kann, dass in einer Gruppe mit mehreren Programmieren Schwierigkeiten auftreten. Hier müssen dann im Vorfeld klare Vorgaben gemacht werden, was natürlich zusätzlicher Planungsaufwand ist. Ein weiteres Problem sind die unterschiedlichen Versionen von Angular, die untereinander wenig kompatibel sind. Auch hier muss also im Vorfeld Konsens bestehen, mit welcher Version gearbeitet wird, damit das Projekt problemlos laufen kann. Auch wenn der Einstieg leicht ist, muss ebenfalls erwähnt werden, dass die Lernkurve von Angular steiler wird, wenn man wirklich das gesamte Framework erlernen will. Zuletzt muss man außerdem anmerken, dass Angular clientseitig arbeitet, was potenziell ein erhöhtes Sicherheitsrisiko nach sich ziehen kann. Darauf muss entsprechend eingegangen werden. Fazit Im Endeffekt ist die Antwort wie so oft „Es kommt darauf an …“. Am sinnvollsten ist es vor Beginn des Projekts zu überlegen, wohin man denn genau will. Wie interaktiv ist die Website, wie viele Ressourcen kann man in die Zusammenstellung von Bibliotheken legen, wie viele Entwickler teilen sich den Code und wo liegt deren Expertise? Kurz zusammengefasst eignet sich React vor allem für sehr interaktive Projekte, in denen ohnehin weitere Bibliotheken zum Einsatz kommen und JSX für niemanden im Team ein Fremdwort ist. Für Angular spricht hingegen die Tatsache, dass das Framework alles Nötige für den Aufbau einer Website bietet und durch die Fokussierung auf HTML erst einmal einsteigerfreundlich ist. Dafür bringt es natürlich als Framework sehr viele Funktionen mit, die bei kleineren Projekten nur unnötiger Ballast sein könnten und ist zuletzt restriktiver.

Der ganze Artikel ist im Newsticker von T3N nachzulesen.

12.08.2017

RSS Newsfeed
Alle News vom TAGWORX.NET Neue Medien können Sie auch als RSS Newsfeed abonnieren, klicken Sie einfach auf das XML-Symbol und tragen Sie die Adresse in Ihren Newsreader ein!