Feeds

Googled by GWT - Part 1

Yes, Ermintrude, there is an alternative to AJAX...

Securing Web Applications Made Simple and Scalable

I have done a great deal of client oriented Swing-based work over the years. I admit to really enjoying this, as you get immediate feedback in terms of the UI you are developing and, when run within tools like Eclipse, a very rich development environment. I have always really liked the speed with which you can change some code, run it, debug it, make a change and continue debugging. This can be really useful for sorting out those niggly little logical or behavioural issues.

For me, this is one of the biggest weaknesses in the current crop of Web 2.0 development environments – the lack of a rich code-compile-execute-debug environment. I also have to admit to being one of those people who feels that while techniques such as AJAX (Asynchronous JavaScript And XML) help to provide a richer user experience, they require that the developer be master of too many different technologies (JavaScript, XML, CSS, HTML etc.).

Of course, despite being a hardened Swing programmer I too find the latest buzz around AJAX interesting; but am still left feeling that the whole programming model is at too low a level. It reminds me of the way in which I used to code X Windows applications nearly 20 years ago. What I really want from a Web 2.0 development environment is something at a higher level, more like Swing but for web applications.

In the past Echo looked like it might offer such an environment, with its Swing-like GUI components and event model – but it never really caught on. Now however, we have the Google Web Toolkit (GWT) – which, like Echo, is essentially a Swing-like Java development environment that generates HTML and JavaScript web applications. And, of course, it has Google behind it, which not only gives it a much higher profile but suggests that ongoing support will be available.

Overview

One major difference between Echo and GWT is that Echo dynamically generated the HTML and JavaScript it sent to the client, while GWT performs a once only translation of the pure Java GUI into the HTML / JavaScript equivalent – which offers not only better performance but the possibility that the deployment environment may not involve Java at all!

So what is GWT – essentially it is a set of Java GUI components, that lets a developer create a web client application within an IDE such as Eclipse, then test and debug this client before generating a pure HTML and JavaScript runtime client (GWT can be downloaded from here).

GWT provides four primary components, these are:

  • GWT Java-to-JavaScript Compiler – this is really a translator and takes the pure Java client and converts it into a HTML and JavaScript equivalent.
  • GWT Hosted Web Browser – this is a runtime environment that allows the pure Java client to execute within a browser-like test environment. It is essentially a special browser control (an Internet Explorer control on Windows or a Gecko/Mozilla control on Linux) with hooks into the JVM.
  • JRE Emulation Library – this is a library of JavaScript components that represent the most commonly used classes in the standard Java class library. For example, most of the java.lang package and a subset of the java.util package are provided.
  • GWT Web UI class library – this is a set of interfaces and classes that support the creation of client GUIs with buttons, text boxes images, text, tabbed panes etc. As such, it replaces the AWT, Swing or SWT classes in desktop client GUI development. GWT ships with the complete source code for the library under an open source license.

GWT applications can be run in two modes:

  1. Hosted mode - In hosted mode, a GWT application is implemented as a pure Java application running within a single JVM. GWT implements hosted mode by providing a simple web server like component (the GWT Development shell) and special web browser. This allows you to view and test your application within a pure Java world using tools such as Eclipse and the Eclipse debugger (see below).
  2. Web mode - In web mode, the GWT application runs as pure JavaScript and HTML. This is the JavaScript and HTML code that is generated from your Java classes, using the GWT Java-to-JavaScript compiler. When you deploy your GWT applications into a production environment, you will deploy the JavaScript and HTML version to your web servers. Thus, it is this version that will be used by the running environment.

To develop a GWT application, the normal development cycle would be:

  1. Using an IDE such as Eclipse, create the GUI client, execute, and test and debug this within the IDE's debugging environment/runtime environment. Once you are happy with the behaviour of the client …
  2. … convert the GUI client into JavaScript and HTML using the GWT’s Java-to-JavaScript compiler.</li
  3. Test your application in each supported web browser.

The easiest way to get started with GWT is to create an appropriate application structure, which can be done in any IDE. However, GWT comes with direct support for the Eclipse IDE, which is what we'll use in the example below.

Bridging the IT gap between rising business demands and ageing tools

More from The Register

next story
NO MORE ALL CAPS and other pleasures of Visual Studio 14
Unpicking a packed preview that breaks down ASP.NET
Cheer up, Nokia fans. It can start making mobes again in 18 months
The real winner of the Nokia sale is *drumroll* ... Nokia
Mozilla fixes CRITICAL security holes in Firefox, urges v31 upgrade
Misc memory hazards 'could be exploited' - and guess what, one's a Javascript vuln
Put down that Oracle database patch: It could cost $23,000 per CPU
On-by-default INMEMORY tech a boon for developers ... as long as they can afford it
Google shows off new Chrome OS look
Athena springs full-grown from Chromium project's head
Apple: We'll unleash OS X Yosemite beta on the MASSES on 24 July
Starting today, regular fanbois will be guinea pigs, it tells Reg
HIDDEN packet sniffer spy tech in MILLIONS of iPhones, iPads – expert
Don't panic though – Apple's backdoor is not wide open to all, guru tells us
prev story

Whitepapers

Designing a Defense for Mobile Applications
Learn about the various considerations for defending mobile applications - from the application architecture itself to the myriad testing technologies.
Implementing global e-invoicing with guaranteed legal certainty
Explaining the role local tax compliance plays in successful supply chain management and e-business and how leading global brands are addressing this.
Top 8 considerations to enable and simplify mobility
In this whitepaper learn how to successfully add mobile capabilities simply and cost effectively.
Seven Steps to Software Security
Seven practical steps you can begin to take today to secure your applications and prevent the damages a successful cyber-attack can cause.
Boost IT visibility and business value
How building a great service catalog relieves pressure points and demonstrates the value of IT service management.