Warum AngularJS auch für Java-Entwickler interessant ist

Brave New JS World

Philipp Burgmer


Wie wurden Webanwendungen bisher entwickelt und warum soll das jetzt nicht mehr gut genug sein? Warum ein Paradigmenwechsel? Nehmen wir zum Beispiel zwei im Java-Umfeld weit verbreitete Frameworks: GWT und JSF. Die Erfahrung zeigt, dass sich mit beiden Technologien mächtige Webanwendungen entwickeln lassen. Allerdings haben aus heutiger Sicht beide auch Nachteile.

In GWT läuft das komplette Frontend im Browser, wird aber in Java entwickelt – sowohl die Logik als auch die Darstellung. Das ist gerade für erfahrene Java-Teams ein großer Vorteil. Mit den neueren Versionen ist es zudem möglich, mit UiBinder das UI auch deklarativ mittels XML zu beschreiben. Eines aber bleibt: Wir entwickeln unsere Webanwendung in der Java-Welt bzw. in einer vorgetäuschten Java-Welt und nicht nativ in der Webwelt. Das hat einen großen Nachteil: Um neue Funktionen der Browser und neue JavaScript-Bibliotheken nutzen zu können, sind wir auf eine Integration in GWT angewiesen (sei es durch GWT direkt oder durch eine Bibliothek), da wir eben nicht die vom Browser nativ unterstützten Sprachen verwenden, sondern diese weggekapselt werden. Jüngst konnte man das gut an der Integration von HTML5-Features beobachten, die in GWT lange auf sich warten ließ.

Bei JSF sieht die Situation ein bisschen anders aus: Auch hier wird HTML gemischt mit eigenen Komponenten zur Beschreibung des UIs verwendet, und die Logik wird in Java implementiert. Die Nachteile bei JSF sind aber andere: Das UI wird auf dem Server berechnet und im Browser nur dargestellt. Fast immer, wenn im UI etwas passiert (z. B. wenn der User etwas anklickt), wird eine Anfrage zum Server geschickt, um das UI zu aktualisieren. Das kann bei schlechten Internetverbindungen, bei Anwendungen, die auch auf mobilen Geräten verwendet werden oder auch bei vielen Änderungen im UI zu einem echten Problem werden. Hinzu kommt, dass Informationen über den Client auf dem Server gespeichert werden müssen. Wir benötigen also ein Session-Management, was wiederum Nachteile mit sich bringt. Zusätzlich zur erhöhten CPU-Last durch die vielen Anfragen, um das UI zu aktualisieren, benötigen wir dadurch auch deutlich mehr Arbeitsspeicher. Skalierung der Server, ob horizontal oder vertikal, wird so nicht nur schwieriger, sondern auch schneller notwendig. Die Rechen- und Speicherkapazitäten moderner Endgeräte, seien es Smartphones, Tablets oder Laptops, werden komplett verschenkt.

AngularJS verfolgt einen völlig anderen Ansatz: Das UI wird ebenfalls deklarat...

Warum AngularJS auch für Java-Entwickler interessant ist

Brave New JS World

Philipp Burgmer


Wie wurden Webanwendungen bisher entwickelt und warum soll das jetzt nicht mehr gut genug sein? Warum ein Paradigmenwechsel? Nehmen wir zum Beispiel zwei im Java-Umfeld weit verbreitete Frameworks: GWT und JSF. Die Erfahrung zeigt, dass sich mit beiden Technologien mächtige Webanwendungen entwickeln lassen. Allerdings haben aus heutiger Sicht beide auch Nachteile.

In GWT läuft das komplette Frontend im Browser, wird aber in Java entwickelt – sowohl die Logik als auch die Darstellung. Das ist gerade für erfahrene Java-Teams ein großer Vorteil. Mit den neueren Versionen ist es zudem möglich, mit UiBinder das UI auch deklarativ mittels XML zu beschreiben. Eines aber bleibt: Wir entwickeln unsere Webanwendung in der Java-Welt bzw. in einer vorgetäuschten Java-Welt und nicht nativ in der Webwelt. Das hat einen großen Nachteil: Um neue Funktionen der Browser und neue JavaScript-Bibliotheken nutzen zu können, sind wir auf eine Integration in GWT angewiesen (sei es durch GWT direkt oder durch eine Bibliothek), da wir eben nicht die vom Browser nativ unterstützten Sprachen verwenden, sondern diese weggekapselt werden. Jüngst konnte man das gut an der Integration von HTML5-Features beobachten, die in GWT lange auf sich warten ließ.

Bei JSF sieht die Situation ein bisschen anders aus: Auch hier wird HTML gemischt mit eigenen Komponenten zur Beschreibung des UIs verwendet, und die Logik wird in Java implementiert. Die Nachteile bei JSF sind aber andere: Das UI wird auf dem Server berechnet und im Browser nur dargestellt. Fast immer, wenn im UI etwas passiert (z. B. wenn der User etwas anklickt), wird eine Anfrage zum Server geschickt, um das UI zu aktualisieren. Das kann bei schlechten Internetverbindungen, bei Anwendungen, die auch auf mobilen Geräten verwendet werden oder auch bei vielen Änderungen im UI zu einem echten Problem werden. Hinzu kommt, dass Informationen über den Client auf dem Server gespeichert werden müssen. Wir benötigen also ein Session-Management, was wiederum Nachteile mit sich bringt. Zusätzlich zur erhöhten CPU-Last durch die vielen Anfragen, um das UI zu aktualisieren, benötigen wir dadurch auch deutlich mehr Arbeitsspeicher. Skalierung der Server, ob horizontal oder vertikal, wird so nicht nur schwieriger, sondern auch schneller notwendig. Die Rechen- und Speicherkapazitäten moderner Endgeräte, seien es Smartphones, Tablets oder Laptops, werden komplett verschenkt.

AngularJS verfolgt einen völlig anderen Ansatz: Das UI wird ebenfalls deklarat...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang