Dynamic, reusable UI components: Create and Send your Widgets to other developers in a JAR file.

Really simple RPC: To communicate from your web application to your web server, you just need to define serializable Java classes for your request and response.

Browser history management: GWT lets you make your site more usable by easily adding state to the browser's back button history.

Real debugging: In production, your code is compiled to JavaScript, but at development time it runs in the Java virtual machine, and so you can take advantage of Java debugging, with exceptions and the advanced debugging features of IDEs like Eclipse.

Browser compatible Your GWT applications: Automatically support IE, Firefox, Mozilla, Safari, and Opera with no browser detection or special-casing within your code in most cases.

JUnit integration: GWT's direct integration with JUnit lets you unit test both in a debugger and in a browser