Welcome!

Machine Learning Authors: Liz McMillan, Pat Romanski, Yeshim Deniz, Elizabeth White, Leon Adato

Related Topics: Machine Learning , Agile Computing

Machine Learning : Article

Google's Innovative Yet Limited AJAX Environment: GWT

Google's recent foray into delivering an Ajaxified Web application stack says much about Google's pragmatic method of delivery

Google's recent foray into delivering an Ajaxified Web application stack, the Google Web Toolkit, says much about Google's pragmatic method of delivering innovation to the market.  I for one, would heartily recommend it for certain applications, while actively advising against it for others.  One major issue is that Google makes a lot of assumptions in GWT that are non-starters for certain uses.  Though making dramatic assumptions isn't a lot different than what Ruby on Rails does to make Web app development easy, the assumptions are different in interesting ways.  Also note that Google does not provide a complete application stack with GWT; it only goes a little bit into the server, past the serialization boundary, which actually leaves the developer free to use the server-side frameworks and libraries of their choice, as long as their Java compatible.  This is part of the pragmatism I was talking about and it turns out GWT is only high concept in a couple of places.

One of the reasons I track Ruby on Rails so closely is that it's an almost perfect match for the Web 2.0 way of building software: radical simplicity, support for almost instant turnaround of fixes and new features, automatic support for a public API so that applications are turned into platforms on their very own, and incorporation of well-recognized open source Ajax libraries, etc..  Note that GWT isn't even open source, though it is available today for commercial and non-commercial uses.  As we shall see, GWT just does not seem as Web 2.0 friendly, and seems built for more traditional pure-play software as a service (Saas).

What's in GWT and Why Is It Special?

By now you probably think I don't think much of GWT, and if so, that's doing it a disservice.  Rick Hightower recently did a wonderful job summarizing the key points of GWT, saying it was perhaps the biggest announcement at JavaOne, and so I won't repeat all his coverage here (indeed he just added a great interview with the GWT Product Manager, so please go read it.)  GWT is free, seems very high quality, and lets developers write entire Ajax applications in Java, so they can take advantage of excellent development, testing, and refactoring tools such as Eclipse that have formed around the Java development world for a decade.  Google claims that GWT results in Ajax software that is just as fast as hand-written Javascript, and it uses a lightweight servlet mechanism to provide data from the Web server.  GWT even prevents that classic Ajax antipattern, breakage of the browser's back button.  And of course, GWT masks the idiosyncracies of the different browsers from the developer almost completely.

But what makes GWT special is that it reclaims Ajax from the programming equivalent of the woodshed.  Real developers have a strong aversion to Javascript, and for good reason.  It's a twitchy, skittish scripting language that is made even harder to work with by different browsers processing Javascript in subtly different ways.  Javascript was never intended for the design and maintenance of robust and sophisticated software applications.  Just the sort of advanced in-browser software that we're seeing emerge almost constantly these days. The software development world has gone too far to accept such a remedial situation, and so with Ajax here to stay, workable alternatives to pure Javascript development like GWT are clearly desired.  Ruby on Rails has done something similar with their Ruby to Javascript compiler for a little while now and GWT does the same thing for Java; getting developers back to tools and languages that were designed for the job of creating properly designed and engineered software.

Finally, GWT fully abstracts away the browser and leaves little directly contact available to the developer, though there are ways to break out and Google provides something they call the Javascript Native Interface (JSNI) to allow developers access to the local browser environment.  Blendability with other Ajax toolkits and components is also a potential problem (though that is always an issue), and it's unclear as of this writing how easy GWT is to mix with Flash and Flex.

Potential Issues with GWT (or, does GWT create closed RPC Stovepipes?)

I did take a pretty close look under the covers at GWT this afternoon and there's quite a bit to like.  The extreme thoughtfulness towards the developer's ease-of-use is evident, and there are several powerful ways to debug GWT applications including a neat plug-in for most platforms that allows sophisticated debugging, profiling, and analysis of GWT applications in the browser.

Despite this, there are some flies in the ointment, and the GWT designers made some choices that makes it hard for developers to take advantage of some of the most important aspects of Web development.  One of these is their choice for using and exposing services.  Surprisingly, developing GWT-friendly services will NOT create an open, interoperable Web service.  In fact, GWT's servlet approach makes applications developed with it into walled gardens that can only communicate with other GWT services for their data.  You have to separately develop the services you want to expose to the world as traditional Web services.  This is in sharp contrast with other Web application stacks (yes, like RoR or ICEfaces) which can expose the same services to the world as the ones the Ajax applications uses.  Using the same Web services as the application is offering to the world cuts server-side testing and development in half and also automatically creates a public, reusable API that lends itself to mashups and the many advantages to being in an service ecosystem on the Web.  Hopefully, Google will address this in a future release of GWT because if true, that's a fairly serious limitation.

But this in itself isn't a showstopper for many uses, as are GWT's limited subset of the Java run-time library (only java.lang and some of java.util are supported currently).  But one of the fundamental issues with GWT seems to be its inabilty to use services other than the ones developed using its servlet method.  As far as I could determine, access to services other than those developed using GWT requires leaving GWT and using the Javascript native interface they provide, giving up many of the benefits of using GWT.  Web service re-use is increasingly one of the most important aspects of Ajax development since the landscape of services avaialble on the Web has become truly amazing (see ProgrammableWeb's terrific directory of public Web services and APIs.). 

Hopefully, the Java serializing scheme the GWT seems to prefer will be expanded to support a true Web-Oriented Architecture and non-GWT services such as RSS, REST, SOAP, and others.  And it's this last piece, until properly addressed, leaves me to caution people considering GWT until it's clear how easy it will be for GWT to co-exist with SOAs, WOAs, and the rest of the Web.  Because developing standalone, stovepiped software is a dying art form.

Good Write-Ups on the Google Web Toolkit

The Official Google Blog: Making Ajax Development Easier
Doug Schaefer: GWT Another Turning Point
Werner Schuster: Google's Plain Java Ajax Tools
Internet News: Google Cleans Ajax for Java
Richard MacManus: Google Web Toolkit Released

What do you think? Are you looking at using the Google Web Toolkit?

More Stories By RIA News Desk

Ever since Google popularized a smarter, more responsive and interactive Web experience by using AJAX (Asynchronous JavaScript + XML) for its Google Maps & Gmail applications, SYS-CON's RIA News Desk has been covering every aspect of Rich Internet Applications and those creating and deploying them. If you have breaking RIA news, please send it to [email protected] to share your product and company news coverage with AJAXWorld readers.

Comments (8) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
Steven Barkdull 10/17/07 07:25:21 AM EDT

Are you serious? The author says:

"Real developers have a strong aversion to Javascript, and for good reason. It's a twitchy, skittish scripting language that is made even harder to work with by different browsers processing Javascript in subtly different ways. Javascript was never intended for the design and maintenance of robust and sophisticated software applications."

1. Real Programmers? Real programmers are capable of mastering whatever tools are required to get the job done.

2. Twitchy and skitish? I have never heard a programming language characterized as "twitchy and skitish". In fact, I am not even sure what those terms mean in the context of a programming language.

3. Who have you been talking to that has the background to make the assertion regarding what Javascript was intended for, and how is that even relevent? For years software developers have been successfully extending technologies for purposes beyond the scope of the technology's original intent.

Enterprise Web 2.0 07/16/06 03:37:53 PM EDT

Trackback Added: Riding the hockey stick: Scaling Web 2.0 software; With all the talk last week about MySpace becoming the #1 most visited site on the Web, there's also been a lot of talk about how Web 2.0 sites like MySpace handle their sharp growth rates. Because Web 2.0 sites explicitly leverage network effects, wh...

Anil Sharma 06/01/06 04:39:43 PM EDT

My friends insisted that I give my reasons why do I think Java to Java Script is not such a good idea. I guess it is a fair demand. Without getting into the details of the specific product (GWT), here is a list of my reasons:

1. There are many open questions - what packages of Java can I use, will collection classes map onto JavaScript code, can I use Java timer, can I use Java multi-threading?

2. How primitive types are handled?

3. If the generated code is not optimal, can I change it? (remember all the pains of changing generated code in any code generation model)

4. If I have to change the code generation template, is it worth it? "I can change it" - it is not a valid argument. It often requires heavy duty work to change and mantain it.

5. Can I avoid learning HTML DOM? If yes, then what is the UI model? Do I have to learn it?

6. Java provides compile time checking. But I may need a dynamic programming model (which is good for UI. There is always some display only information that you need to handle without worrying too much about its data-type).

7. Is it proven for a production application?

8. Can you really escape JavaScript if you have chosen AJAX as the technology? Or, do you really want to escape. Very soon you will need to know JavaScript say, to improve performance.

9. I find development cycle (code change, execute, test) is very efficient for an interpretive language.

10. If we had a good JavaScript debugger, would we be thinking about Java to JavaScript. If not then, is it not an interim arrangement?

Anil Sharma 05/31/06 06:23:54 PM EDT

I like to be a contrarian and call it a brain dead idea. We need a JavaScript debugger and not a Java to JavaScript compiler. It is all about DOM and not so much about JavaScript. It will be a nightmare to debug if Java to JavaScript has one wrong mapping.

It is a radical idea though.

I tip my hat if gmail and google map were really written using Java to JavaScript way.

Phil Haigh 05/26/06 05:06:16 AM EDT

"Surprisingly, developing GWT-friendly services will NOT create an open, interoperable Web service"

I'm sorry but I don't see this as a problem. The GWT is targeted at building rich-functionality user interfaces in the browser, so the server-side interface to support the dynamic nature of the application will by its nature be tightly coupled to the precise requirements of the widgets it is supporting. Those widgets can and will change, and so will the server-side interface with them, even if the underlying business process does not.

It is logical to share business services but the server-side interface of an Ajax-enabled browser application is not a set of business services but a set of internal user interface support services. Don't confuse the two!

AJAX News Desk 05/22/06 08:23:28 AM EDT

Google's recent foray into delivering an Ajaxified Web application stack, the Google Web Toolkit, says much about Google's pragmatic method of delivering innovation to the market. I for one, would heartily recommend it for certain applications, while actively advising against it for others. One major issue is that Google makes a lot of assumptions in GWT that are non-starters for certain uses.

SYS-CON Australia News Desk 05/22/06 08:17:40 AM EDT

Google's recent foray into delivering an Ajaxified Web application stack, the Google Web Toolkit, says much about Google's pragmatic method of delivering innovation to the market. I for one, would heartily recommend it for certain applications, while actively advising against it for others. One major issue is that Google makes a lot of assumptions in GWT that are non-starters for certain uses.

AJAX News Desk 05/22/06 07:38:28 AM EDT

Google's recent foray into delivering an Ajaxified Web application stack, the Google Web Toolkit, says much about Google's pragmatic method of delivering innovation to the market. I for one, would heartily recommend it for certain applications, while actively advising against it for others. One major issue is that Google makes a lot of assumptions in GWT that are non-starters for certain uses.

@CloudExpo Stories
In his session at 20th Cloud Expo, Mike Johnston, an infrastructure engineer at Supergiant.io, discussed how to use Kubernetes to set up a SaaS infrastructure for your business. Mike Johnston is an infrastructure engineer at Supergiant.io with over 12 years of experience designing, deploying, and maintaining server and workstation infrastructure at all scales. He has experience with brick and mortar data centers as well as cloud providers like Digital Ocean, Amazon Web Services, and Rackspace. H...
The question before companies today is not whether to become intelligent, it’s a question of how and how fast. The key is to adopt and deploy an intelligent application strategy while simultaneously preparing to scale that intelligence. In her session at 21st Cloud Expo, Sangeeta Chakraborty, Chief Customer Officer at Ayasdi, will provide a tactical framework to become a truly intelligent enterprise, including how to identify the right applications for AI, how to build a Center of Excellence to ...
You know you need the cloud, but you’re hesitant to simply dump everything at Amazon since you know that not all workloads are suitable for cloud. You know that you want the kind of ease of use and scalability that you get with public cloud, but your applications are architected in a way that makes the public cloud a non-starter. You’re looking at private cloud solutions based on hyperconverged infrastructure, but you’re concerned with the limits inherent in those technologies.
SYS-CON Events announced today that Massive Networks will exhibit at SYS-CON's 21st International Cloud Expo®, which will take place on Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Massive Networks mission is simple. To help your business operate seamlessly with fast, reliable, and secure internet and network solutions. Improve your customer's experience with outstanding connections to your cloud.
DevOps is under attack because developers don’t want to mess with infrastructure. They will happily own their code into production, but want to use platforms instead of raw automation. That’s changing the landscape that we understand as DevOps with both architecture concepts (CloudNative) and process redefinition (SRE). Rob Hirschfeld’s recent work in Kubernetes operations has led to the conclusion that containers and related platforms have changed the way we should be thinking about DevOps and...
As businesses adopt functionalities in cloud computing, it’s imperative that IT operations consistently ensure cloud systems work correctly – all of the time, and to their best capabilities. In his session at @BigDataExpo, Bernd Harzog, CEO and founder of OpsDataStore, presented an industry answer to the common question, “Are you running IT operations as efficiently and as cost effectively as you need to?” He then expounded on the industry issues he frequently came up against as an analyst, and ...
SYS-CON Events announced today that Datera, that offers a radically new data management architecture, has been named "Exhibitor" of SYS-CON's 21st International Cloud Expo ®, which will take place on Oct 31 - Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. Datera is transforming the traditional datacenter model through modern cloud simplicity. The technology industry is at another major inflection point. The rise of mobile, the Internet of Things, data storage and Big...
Everything run by electricity will eventually be connected to the Internet. Get ahead of the Internet of Things revolution and join Akvelon expert and IoT industry leader, Sergey Grebnov, in his session at @ThingsExpo, for an educational dive into the world of managing your home, workplace and all the devices they contain with the power of machine-based AI and intelligent Bot services for a completely streamlined experience.
Because IoT devices are deployed in mission-critical environments more than ever before, it’s increasingly imperative they be truly smart. IoT sensors simply stockpiling data isn’t useful. IoT must be artificially and naturally intelligent in order to provide more value In his session at @ThingsExpo, John Crupi, Vice President and Engineering System Architect at Greenwave Systems, will discuss how IoT artificial intelligence (AI) can be carried out via edge analytics and machine learning techn...
FinTechs use the cloud to operate at the speed and scale of digital financial activity, but are often hindered by the complexity of managing security and compliance in the cloud. In his session at 20th Cloud Expo, Sesh Murthy, co-founder and CTO of Cloud Raxak, showed how proactive and automated cloud security enables FinTechs to leverage the cloud to achieve their business goals. Through business-driven cloud security, FinTechs can speed time-to-market, diminish risk and costs, maintain continu...
Existing Big Data solutions are mainly focused on the discovery and analysis of data. The solutions are scalable and highly available but tedious when swapping in and swapping out occurs in disarray and thrashing takes place. The resolution for thrashing through machine learning algorithms and support nomenclature is through simple techniques. Organizations that have been collecting large customer data are increasingly seeing the need to use the data for swapping in and out and thrashing occurs ...
SYS-CON Events announced today that CA Technologies has been named "Platinum Sponsor" of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business - from apparel to energy - is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
As many know, the first generation of Cloud Management Platform (CMP) solutions were designed for managing virtual infrastructure (IaaS) and traditional applications. But that’s no longer enough to satisfy evolving and complex business requirements. In his session at 21st Cloud Expo, Scott Davis, Embotics CTO, will explore how next-generation CMPs ensure organizations can manage cloud-native and microservice-based application architectures, while also facilitating agile DevOps methodology. He wi...
From 2013, NTT Communications has been providing cPaaS service, SkyWay. Its customer’s expectations for leveraging WebRTC technology are not only typical real-time communication use cases such as Web conference, remote education, but also IoT use cases such as remote camera monitoring, smart-glass, and robotic. Because of this, NTT Communications has numerous IoT business use-cases that its customers are developing on top of PaaS. WebRTC will lead IoT businesses to be more innovative and address...
Blockchain is a shared, secure record of exchange that establishes trust, accountability and transparency across business networks. Supported by the Linux Foundation's open source, open-standards based Hyperledger Project, Blockchain has the potential to improve regulatory compliance, reduce cost as well as advance trade. Are you curious about how Blockchain is built for business? In her session at 21st Cloud Expo, René Bostic, Technical VP of the IBM Cloud Unit in North America, will discuss th...
While some vendors scramble to create and sell you a fancy solution for monitoring your spanking new Amazon Lambdas, hear how you can do it on the cheap using just built-in Java APIs yourself. By exploiting a little-known fact that Lambdas aren’t exactly single-threaded, you can effectively identify hot spots in your serverless code. In his session at @DevOpsSummit at 21st Cloud Expo, Dave Martin, Product owner at CA Technologies, will give a live demonstration and code walkthrough, showing how ...
SYS-CON Events announced today that CA Technologies has been named “Platinum Sponsor” of SYS-CON's 21st International Cloud Expo®, which will take place October 31-November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA. CA Technologies helps customers succeed in a future where every business – from apparel to energy – is being rewritten by software. From planning to development to management to security, CA creates software that fuels transformation for companies in the applic...
Cloud adoption is often driven by a desire to increase efficiency, boost agility and save money. All too often, however, the reality involves unpredictable cost spikes and lack of oversight due to resource limitations. In his session at 20th Cloud Expo, Joe Kinsella, CTO and Founder of CloudHealth Technologies, tackled the question: “How do you build a fully optimized cloud?” He will examine: Why TCO is critical to achieving cloud success – and why attendees should be thinking holistically ab...
As more and more companies are making the shift from on-premises to public cloud, the standard approach to DevOps is evolving. From encryption, compliance and regulations like GDPR, security in the cloud has become a hot topic. Many DevOps-focused companies have hired dedicated staff to fulfill these requirements, often creating further siloes, complexity and cost. This session aims to highlight existing DevOps cultural approaches, tooling and how security can be wrapped in every facet of the bu...
Internet of @ThingsExpo, taking place October 31 - November 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA, is co-located with 21st Cloud Expo and will feature technical sessions from a rock star conference faculty and the leading industry players in the world. The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago. All major researchers estimate there will be tens of billions devic...