Google Web Toolkit 1.5

 
03 juni 2008

Het uitkomen van Release Candidate 1 van Google Web Toolkit (GWT) 1.5 is een goed moment om weer eens naar de ontwikkelingen rondom GWT te kijken. Voor de lezers die niet bekend zijn met GWT volgt eerst een introductie. Daarna volgen de recente ontwikkelingen rondom GWT.

Wat is Google Web Tookit?

GWT is een toolkit voor het ontwikkelen van Rich Internet Applicaties volgens het Ajax concept. Er zijn natuurlijk veel verschillende JavaScript en Ajax frameworks, maar GWT is anders… Je ontwikkelt de applicatie namelijk niet in JavaScript, maar in Java.

De GWT compiler zet de Java code vervolgens weer om naar (hele efficiënte) JavaScript. Deze JavaScript is compatible met Internet Explorer, Firefox, Mozilla, Safari, en (meestal ook) Opera. Hier hoef je als ontwikkelaar verder niets voor te doen.

De bij GWT meegeleverde API’s bieden erg veel functionaliteit zoals een verzameling user-interface componenten, een Remote Procedure Call framework, een XML parser en JavaScript integratie.

Daarnaast kent GWT ook de zogenaamde “hosted” mode. In deze “hosted” mode wordt de Java code uitgevoerd in een speciale meegeleverde web browser. In deze mode is debugging vanuit bijvoorbeeld Eclipse mogelijk, net zoals bij een normale Java applicatie.

Het verplichte “Hello World” voorbeeld

Zonder “Hello World” voorbeeld zou deze introductie in GWT natuurlijk niet compleet zijn.

public class HelloWorld implements EntryPoint {

	public void onModuleLoad() {

		final PopupPanel popup = new PopupPanel(true);
		popup.center();
		popup.hide();
		Label label = new Label("Hello World!");
		popup.add(label);

		final Button button = new Button();
		button.setText("Click me!");
		button.addClickListener(new ClickListener(){
			public void onClick(Widget widget){
				popup.show();
			}
		});
		RootPanel panel = RootPanel.get();
		panel.add(button);
	}
}

Onze HelloWorld class implementeert de EntryPoint interface. Dit kun je vergelijken met de Applet of de Servlet class. De classes RootPanel, PopupPanel, Button en Label zijn onderdeel van de com.google.gwt.user.client.ui package. Je ziet dat de manier van ontwikkelen erg veel lijkt op het bouwen van een Swing applicatie.

De ontwikkelingen rondom GWT

Ondanks een matige ontvangst bij de release van GWT in 2006 is er toch een behoorlijke community rondom GWT ontstaan. Zo is er een plug-in voor Eclipse (Cypal Studio for GWT) en een plug-in voor NetBeans (GWT4NB). Ook is er een Maven 2 plug-in beschikbaar en zijn er verschillende boeken over GWT verschenen.

Daarnaast zijn er verschillende open-source projecten die extra user-interface componenten voor GWT beschikbaar stellen. Zo is er het Tatami project dat de user-interface componenten uit het bekende DOJO project beschikbaar maakt als GWT component.

Binnen GWT zelf zijn er ook diverse ontwikkelingen. Sinds versie 1.3 is GWT beschikbaar onder de Apache 2 open-source licensie. De 1.5 release introduceert onder andere ondersteuning voor Java 5 en ziet er standaard veel beter uit door de beschikbare visuele thema’s en ingebouwde animaties.

Conclusie

De grote vraag is nu: is GWT klaar om binnen een serieus project ingezet te worden?
Mijn antwoord daarop is: Ja, maar denk goed na of je project geschikt is voor het gebruik van GWT.

GWT is vooral geschikt voor applicaties die grotendeels in de browser (ofwel client centric applicaties) kunnen worden uitgevoerd binnen een zogenaamde Single Page Interface (SPI). In deze gevallen is het ontwikkelen met GWT veel eenvoudiger en productiever dan met een op JavaScript gebaseerd Ajax framework.

Voor traditionele, formulier gebaseerde webapplicaties waarbij Ajax meer wordt ingezet als een verrijking van de user-interface (ofwel applicaties die meer server centric zijn) kun je denk ik beter een JSF implementatie met Ajax ondersteuning kiezen (bijvoorbeeld JBoss RichFaces) of anders een framework als Apache Wicket.


Werken met ?
Kijk dan bij onze mogelijkheden voor starters en/of ervaren IT'ers.


Categorieën: Development, Java (EE), Overige talen en platformen

Tags: ,


Reacties (5)

  • Sieger Veenstra schreef:

    @ Chris: Voor .NET is Script# in ontwikkeling dat iets vergelijkbaars doet. (zie http://www.nikhilk.net/ScriptSharpIntro.aspx )

    Geplaatst op 09 juni 2008 om 19:20 Permalink

  • Volgens mij is de werking van gwt nog iets anders dan die andere web frameworks, gwt is o.a. echt een compiler die java omzet in javascript (zie o.a.
    http://timepedia.blogspot.com/2007/06/gwt-demystified.html). Dus dit even porten lijkt me lastig.

    Maar ik werk nu trouwens met gwt 1.4, en 1.5 lijkt echt een erg goede stap vooruit te zijn (alhoewel hij er al iig. 1.5 jaar aan zat te komen).

    Maar dat formulieren (data-binding achtige zaken) wat lastig zijn met gwt is inderdaad waar, alhoewel ik een argumentatie daarvan enigszins mis.

    Geplaatst op 05 juni 2008 om 10:23 Permalink

  • Ivo Limmen schreef:

    Chris: Ik heb verschillende implementaties van Java Web frameworks gezien die geport waren naar .NET (Maverick, NVelocity, C# StringTemplate, Spring.NET en NStruts).
    Het lijkt mij dat het wel mogelijk moet zijn. Misschien is dit een leuke stage opdracht?

    Geplaatst op 04 juni 2008 om 14:02 Permalink

  • Chris de Kok schreef:

    Klinkt gaaf deze GWT. Logische vraag als .NET developer is natuurlijk of GWT nu of in de toekomst ook C# kan gaan ondersteunen? Of is dit totaal niet aan de orde?

    Geplaatst op 04 juni 2008 om 10:19 Permalink

  • Ivo Limmen schreef:

    Het heeft ook veel weg van het Echo framework.
    Als je een grote fan bent van Swing dan is WebOnSwing ook een aardig project.
    Ikzelf ben een fan van Wicket omdat je geen extra compilatie slagen hoeft te doen en vrijer bent in de HTML die je web applicatie produceert (en toch een mooie separatie tussen code en HTML hanteert).

    Geplaatst op 04 juni 2008 om 8:56 Permalink