Las ventajas son, básicamente, que GWT es una herramienta para compilar un cliente basado en JavaScript, por lo tanto, es más adecuado si desea un cliente basado en JavaScript.
Wicket se centra en el servidor, y si bien hace que sea bastante fácil insertar JavaScript en páginas sin estado, el manejo del estado del lado del servidor es el enfoque más natural.
Hay que tener en cuenta que las arquitecturas son muy diferentes.
Con GWT, su arquitectura se convierte en cliente-servidor, un cliente grueso en el navegador, realizando llamadas a 'procedimientos' (servicios) al servidor, enviando y recibiendo datos.
Con Wicket (y otros marcos de componentes del lado del servidor centrados, como JSF y la tapicería), la arquitectura es un 3-capa más 'tradicional' uno, y lo que está enviado y recibido son páginas o fragmentos de las páginas, no datos puros.
Si bien puede sin duda mezclar ambos para adaptarse a la otra arquitectura, simplemente no sería muy natural.
Las personas tienden a centrarse en "lo que es más fácil de usar" (que es completamente subjetivo, dependiendo de su fondo), o "que es más hermoso y tiene más componentes", pero no se debe subestimar la diferencia arquitectónica, que afecta el enfoque que debe tomar para manejar aspectos como seguridad y escalabilidad.
¿Podría hacer casi el mismo argumento para la codificación en Wicket ..? – Tim
__No__, no pudiste. ¿Puedes escribir aplicaciones ricas en el cliente en Wicket sin Javascript? –
Buen punto. ¿También puedes escribir GWT usando Scala? –