The Google Web Toolkit
By Allen Holub
July 1, 2006 —
(Page 1 of 3)
Regular readers of this column are familiar with my feelings about AJAX. I think of it as a necessary evilthe only politically (though not technically) viable way to get an interactive Web applications rich user interface onto the browser. My main problem with AJAX is that once you get past the hype, AJAX is nothing more than a massive steaming heap of JavaScript, and I hate JavaScript. Its a poorly designed language executing in a nonstandard environment with only the most primitive debugging support.
Most important, JavaScript is a fundamentally procedural language (the so-called object-oriented extensions are just warts). I just hate the idea of having to splice this garbage onto my well-designed object-oriented server-side application, and I hate spending the time required to get even simple things to work on all the most common browsers.
A few client-side AJAX libraries exist (Dojo, TIBCOs GI, etc.), but if you use them, youre still programming (and debugging) in JavaScript. The open-source libraries are typically undocumented, flaky and amateurish.
Google has gone a long way toward solving the problem by taking the make-it-look-like-a-nail approach to AJAX (an approach I normally dont like, but it works really well here). Im referring to the free Google Web Toolkit (GWT), available at code.google.com/webtoolkit.
The core of GWT is a compiler that translates standard Java to JavaScript.
You write the client side code entirely in Java, using a GWT widget library for the GUI. The system uses the familiar Composite design pattern (panels can contain other panels or widgets). Panels can be docked. Low-level widgets include various buttons (including check boxes, radio groups, etc.) text fields and areas (which can display HTML), hyperlinks, list boxes, a full-blown menu bar, tabbed windows, tables and trees. You can attach normal Java listeners to any of these for client-side event processing. You can easily customize look and feel.
Most of the classes in the java.lang package are also available on the client side, as are the java.util Date, Arrays, Collections and some of the basic collection classes (ArrayList, HashMap, HashSet, Stack, Vector and iterators across these classes). Other classes provide access to the DOM, cookies, browser-widow properties, and other client-side niceties.
Share this link: http://sdt.bz/29412
Most Read Latest News Blog Resources
Appcelerator Acquires Cocoafish to Add Instant Mobile Cloud Capabilities to its Industry Leading Titanium Platform
Appcelerator Offers Messaging, Social, Location and Storage Mobile Cloud Services to All Mobile App Publishers
|
|
Taking enterprise architecture to the business side
Startup Corso is bringing out a cloud-based planning platform that ties into business plans
|
|
ComponentOne Releases a Collection of 40+ UI Widgets Powered by HTML5 and jQuery
ComponentOne has announced the 2012 release of Wijmo: a kit of UI widgets for HTML5 and jQuery development
|
|
Top five apps to manage your workload
Web applications offer new ways to track your “to-do” lists
|
Taking enterprise architecture to the business side
Startup Corso is bringing out a cloud-based planning platform that ties into business plans
|
|
Top five apps to manage your workload
Web applications offer new ways to track your “to-do” lists
|
|
Not so fast when it comes to testing in the cloud
Developers face outsourcing, virtual lab management and mobile devices as obstacles
|
|
Xceed releases UX-focused suite for Microsoft’s WPF
"Blendables" helps match user experiences to developer visions
|
Are you at risk for burnout?
Burnout is a severe problem and it can strike at any time. Here's how to tell if you are nearing the edge.
|
|
Agility, mom, and apple pie
If we're to evaluate the state-of-the-art in software development, we should start with the values espoused in the Agile Manifesto.
|
|
RIM woos developers with free tablet
How do you get more apps ported to the BlackBerry PlayBook? By giving every developer a free tablet, of course!
|
|
GitHire: Use Headhunters to Find Your Perfect Programmer
Are you a hiring manager tired of scouring the job boards? Check out this new service that will find 5 people interested in your jobs.
|
The Hidden Costs of Software Licensing
Moving beyond paper-based software licensing to more flexible, software-based licensing is a business decision. There is a growing trend tow...
|
|
Case Study: You May Need a Development Mechanic
As a contractor for a major financial player in Germany, SOBEGE, a German-based consultancy specializing in embedded IT and web services, wa...
|
|
Ensuring Software Quality at a Major International Bank
One of the world’s leading international banks has adopted AgitarOne technology for delivering generated unit tests for their Java software...
|
|
Load Testing Adobe Flex Applications
Adobe Flex applications may be different from applications you’ve worked with before. For classic HTML web applications, the server does all...
|