Wicket 6

Experimentelles

Wie eingangs erwähnt, möchte ich hier noch auf die derzeitigen experimentellen Module eingehen. Hier finden sich all jene Neuerungen wieder, die es nicht mehr bis zur Release-Reife geschafft haben. Sie werden für Wicket 6 weiterentwickelt und werden es vielleicht innerhalb der nächsten Monate zu einem Final Release schaffen. Gleich zwei dieser Module beschäftigen sich mit WebSockets. Bei Wicket-Native-WebSockets [3] handelt es sich um eine reine Implementierung des Standards samt serverseitiger Integration. Hier wird viel Wert auf den „Wicket Way“ gelegt, weshalb die Verwendung sich stark an das bereits bekannte Ajax-API samt Behaviors anlehnt.

WebSockets

WebSockets sind eigentlich nichts weiter als „glorifizierte“ TCP-Sockets. Sie erlauben es dem Browser, via JavaScript eine persistente Verbindung zum Server aufzubauen. Der Server kann dadurch Nachrichten zum Client schicken, eine Funktion, die besonders für Spiele oder ähnliche Anwendungen wichtig ist. Generell müssen sie sowohl vom Server als auch vom Browser unterstützt werden. Bei den Servern bieten die aktuellen Versionen von Tomcat und Jetty eine WebSocket-Implementierung. Außerdem sind auch alle aktuellen Versionen der wichtigsten Browser bereits WebSocket-fähig.

Auch Wicket-Atmosphere bietet mitunter eine WebSockets-Integration. Allerdings sind WebSockets nicht die einzige Option: Da hier das beliebte asynchrone Webframework Atmosphere integriert wird, stehen natürlich auch dessen andere Möglichkeiten der Server-Interaktion zur Verfügung. Somit stehen auch Server-Side Events, Long Polling, HTTP-Streaming und JSONP zur Verfügung. Diese Vielzahl an Optionen erfordert ein deutlich höheres Abstraktionslevel. Im Vergleich zur reinen WebSocket-Lösung, die ja eine entsprechende Implementierung im Servlet-Container benötigt, bieten diese oft die Möglichkeit, in herkömmlichen Servlet-Containern zu funktionieren.

Der Dritte und Letzte im Bunde ist Wicket-Bootstrap [4]. Wie der Name schon verrät, handelt es sich hierbei um eine Integration von Twitters Bootstrap. Dieses CSS-JavaScript-Frontendframework erfreut sich seit einiger Zeit steigender Beliebtheit und bildet die Basis für eine Vielzahl verschiedenster Webanwendungen. Das Wicket-Modul ist momentan noch recht rudimentär, entwickelt sich aber schnell weiter (wahrscheinlich tue ich dem Modul schon durch das Schreiben dieser Zeilen Unrecht).

Zusammenfassung

Wie jedes Major Release bringt auch dieses eine nicht unerhebliche Menge an Schmerzen mit sich. Die API-Änderungen sind noch relativ leicht zu verkraften, sind es doch deutlich weniger als beim letzten Release. Der Umbau des Ajax-Layers aber wird bei so manchem Projekt für Kopfschmerzen sorgen.

Man mag sich an dem kurzen Abstand zweier Major-Releases mit solch tiefgreifenden Änderungen stören (Wicket 1.5 war wirklich kein Leichtgewicht). Doch finde ich, dass hier keine Änderungen um ihrer selbst willen gemacht wurden. Im Gegenteil wurde viel Mühe darauf verwendet, das API so stabil wie möglich und Änderungen so gering wie möglich zu halten.

Betrachtet man die Geschwindigkeit, in der sich Webanwendungen und die dort verwendeten Technologien weiterentwickeln, bleibt einem Framework wie Wicket keine andere Wahl, als schneller als die Konkurrenz fortzuschreiten. Der Trick dabei ist, nicht zu schnell zu werden, und Wicket hat in meinen Augen die richtige Balance gefunden.

Jochen Mader ist Senior-Entwickler bei der Senacor Technologies AG, wo er sich derzeit hauptsächlich mit der Entwicklung Wicket-basierter Frontends beschäftigt.
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.