Shared publicly  - 
 
People sometimes ask me why Google itself doesn't use GWT, but many people don't realize that many of Google's newer services are written using it.

Some Google products that use Google Web Toolkit that you may not know about:

AdWords http://google.com/adwords
AdSense http://google.com/adsense
Flights http://flights.google.com
Hotel Finder http://www.google.com/hotelfinder
Offers https://www.google.com/offers
Wallet http://wallet.google.com
The New Blogger http://www.blogger.com/
Chrome Webstore https://chrome.google.com/webstore (Actually done in Closure, but embeds GWT checkout code)
Product Search http://www.google.com/prdhp?hl=en&tab=mf
Public Data http://www.google.com/publicdata/home
New Google Groups http://groups.google.com
Orkut http://www.orkut.com
Google Health (discontinued)
Google Wave (discontinued)
PlayN (basis of Angry Birds)
97
171
Ray Cromwell's profile photoKarthik Reddy's profile photoBrandon Donnelson's profile photojeffery clark's profile photo
39 comments
 
can GWT or PlayN be used with other JVM languages ?
If not are there any future plans.. for supporting atleast Python or Ruby or other scripting languages ?
I know that there things like Pyjama for Python.
but all i wnated to know is.. can I use PlayN with languages other than Java?
 
I suppose Python and Ruby could be supported via JRuby/JPython?
 
I'm most proud of Flights and Hotelfinder in this list by the way. These apps are blisteringly fast to load and use, and demonstrate the benefits of GWT's easy support for reducing HTTP requests and perfectly caching assets.
 
I like a lot about GWT, but I wish it wasn't such a hard skill item to hire engineers for... and that they had better handling of multi-page application models. Everything now feels like a workaround, as it does in classic Asp.NET.
 
GWT really isn't suited for "true" multipage applications in the traditional sense (e.g. entire browser document is replaced), but it does support multipage applications in the sense that Android does with Activities and Intents, in GWT it's called Activities and Places (MVP model). In theory, you could support killing the main document by running the entire GWT app in an HTML5 Shared Worker or Chrome Background Page, then the app doesn't lose all of it's state when the page reloads. Then have it inject HTML5 or listen to events via postMessage(). Not sure if there's be a real benefit except being able to retain the old Web 1.0 style server rendering (PHP/JSP/etc)

Currently the MVP stuff is a lot more tedious and boilerplate driven than need be. The GWT-Platform third party library fixes some of this, but I still wish it required far less code.
 
"The GWT-Platform third party library fixes some of this, but I still wish it required far less code."

I'll be solving that in my next startup, but launch is still 3 or so years out. :)
 
GWT is fantastic and in combination with App Engine extremely powerfull to create Web Applications. I love it!
When flights and Hotel Finder are build with GWT could you tell me which bindings are used for the maps API V3?
I build my app with the GWT Maps API V2 but this one is deprecated and it is time to move on to the V3. I just don't know right now what the best way is to continue with my App.

1. Wait for official GWT Maps API V3 from Google, don't know if this is going to happen. At the moment it looks like this is not going to happen.
2. Use some bindings from somebody else
3. Create my own (Not going to work :-) )
4. Build www.cyclingthealps.com completly in JavaScript which I am not looking forward to.

Please tell me my first option will soon be released and everything is going to be OK. :-)
 
Thanks for sharing. We are replacing a legacy system and building the new version using GWT. Its nice to have some reference sites to see the possibilities.
 
+Ray Cromwell Thanks for sharing nifty #GWT links.

Here at the GTUG meetings in Seattle I've met people from Amazon and Sage +Stephen Smith that use GWT in there production business apps which is very exciting to see other companies use it.

Not that I can do it any better than others, but I've built GWT apps inside Frontier Comm. and had great successes with Employee info management and slowly/fast changing hierarchy management. I've enjoyed how easy it is to build easy to use applications for the web. Currently, one of my customers/schools in the Arlington School District is really excited about the learning plan I have built transposing there archaic word docs transport.

I agree the MVP activities and places has a bit of boiler plate. But with a large mutli-state application it has benefits that reveal themselves once the app starts to grow. I also know there is quite a few directions you can go to get this job done and they can work good. Although I don't mind a little bit of boiler plate if it helps decouple states for testing and simplicity of deconstruction in large app composition.

+Dennis Wegewijs I heard from +David Chandler there might be maps v3 in the works internally and there testing it. Either way, I am [also] building maps v3 wrapper by year end (maybe first of Jan.). I have a client that is itching for a routing app. I've finished 24/155 of classes all with test cases. (I started this Dec.) I'm a bit shy, as of yet to posting the source. I have posted some notes about the Journey here http://c.gwt-examples.com/home/wrapping ...

I also like to post notes about my GWT journey here. http://gwt-examples.googlecode.com

There are so many reasons I dig #GWT app development, but one of my favorite is I can add value to mine and others in the shortest amount of time with it.
 
Nice to know, I always wondered if they used their own framework since Gmail and Google Maps seem to be very different.

I recently mavenized a gwt application, read about it here: http://rwyland.blogspot.com
 
Thanks for posting these links. Personally I really like using GWT and it really helps to be able to show some great examples when talking to people about GWT. Lot of webdevelopers who started with html and basic javascript, but now want to make complex applications are totally unaware of GWT. They struggle with all these problems that traditional javascript development brings (no OO, managing script includes, optimizing assets, etc) while GWT has solutions for these problems, but they just don't know it or think that Java is scary. Although I have to agree GWT is a bit hard to get in to, I like it more and more each day.
 
I can't imagine attempting to manage a large complex JavaScript project without something like GWT.
 
I still have difficulty believing that GWT is not an elaborate Apr Fools joke. That anyone takes it seriously and uses it is disturbing.
 
I'm working on a project at JBoss with +Mike Brock and +Christian Sadilek that builds on GWT with some slightly different aims:

* support for a growing collection of Java EE 6 features (CDI injection and eventing; JAX-RS support via rebinding; JPA support planned)
* elimination of boilerplate wherever possible (use annotations such as @EntryPoint and @PostConstruct rather than implementing interfaces)
* more of a focus on class reuse between client and server, especially business domain objects and validation logic

The idea is, we already know how to write maintainable apps using Java, an IoC container, and an ORM tool. And the Servlet 3.0 spec moved a lot of boilerplate config out of XML and into annotations. Why not have this stuff in the browser too?

Come check it out and let us know what you think: http://www.jboss.org/errai
 
JBoss and GWT? Sounds like a match made in Heaven (by which I mean Hell). That anyone is still working on NeoCobol (aka Java) is so depressing.
 
+Uriel Étranger I'd love to respond to any constructive criticism you have about our framework, or the advantages of other languages and approaches and why they are superior.
B Doyle
 
Yes, I am using GWT at work and at home. It's okay. Lots of code but as one above suggested, large applications need good structure. I don't think it's for everyone. It's more complicated than a typical legacy web app with the regard that you have to change your thinking. I still think most of this stuff could be scaffolded. If had to scaffold a GWT project I would not do it from the domain layer. I would do it from the event layer. I'd figure out the eventing model of the buisness problem you are trying to solve, model that and then scaffold your project.

Later
B Doyle
 
I'd be interested to explore the alternatives +Uriel Étranger is proposing for Rich Web Client development.
 
Spring Roo has an auto-GWT scaffolder that builds the UI and wires up all the logic from the domain model.
 
Yes, but in our experience the Roo-generated GWT apps always have problems. Finders are still not included (as opposite to Spring MVC) and I would really love to have an GWT expert to review the generated code and the architecture behind it. I do not see GWT as first class citizen in Spring Roo.
 
I wouldn't be interested to explore anything +Uriel Étranger has to say, since he is clearly a troll. I am working on a very big project (insurance fraud detection system) and we are using GWT. We have every element an application can have (sortable custom tables, social network applet, advanced search mechanisms, lots of custom widgets.......). I have worked with almost all big Java web frameworks (Struts, WebWork, Wicket, JSF, ...) have also developed an in-house custom solution for one, where there were none (the times of Borland App Server) and I must say that GWT is the only web framework that never made me think about changing it to something else. So, in my opinion, GWT is hands down the best web framework for Java.
As a side note, though: I first fell in love (in theory) with Ray Ryan flavor of MVP and have implemented it, but it proved a bit "too much" (too many handlers, interfaces, events.....). So I am using a more .NET or Apple style of MVP where view has a reference to presenter. Makes coding faster and much cleaner (more transparent).
B Doyle
 
As a follow up. SpringRoo is okay the Maven thing really killed it. It's like okay it's 98% generated and then you spend the next few hours chasing dependencies. I have a love hate relationship with maven.

I want to spend sometime with the Crux framework. http://code.google.com/p/crux-framework/

Anyone use it?
 
nice list, thank you... I would like to know which tech's were used for the new gmail and calendar app :D
 
+Christian Lipp Interesting to hear your comment regarding Finders in Roo not working. That mirrors my experience, and together with the inability to customise MyEntityRequest classes, makes Roo a bit of a showstopper. I posted this on the Roo forum:
http://forum.springsource.org/showthread.php?124307-GWT-add-on-does-not-allow-*Request-classes-to-be-customised

I did get a response that Finders are implemented, they just need to be tweaked afterwards, but I could not get it to work at all.

I've only played with Roo for a couple of days so am no expert, but IMO, this currently makes it impossible to do round-trip development. It is still very useful if your domain model is already pretty well defined (or you have an existing db) to kickstart a project. But IMO after the initial setup, you'd have to disable Roo to continue development.

Which is a pity, because Roo seems quite close. They have done a lot of work with GWT to enable the developer to write custom code for Views, etc. without Roo wiping it out. Roo does a good job to take care of the tedious stuff - which if you are using MVP there is a lot of. I do like MVP very much BTW - it provides a nice structure for complex applications, especially for multi-member teams. (When I say MVP, I really mean MVP and a bunch of other stuff like EventBus, Places and Activities).

MVP can be a bit overwhelming for junior developers, but I would argue that that is all the more reason to be using it, because without it, those devs would not have magically come up with all those things by themselves. Roo would also make a nice tool to introduce junior devs to MVP, help them to get going, and give them good examples to learn from. Talking of which, I am not sure I am a fan of the inheritance/generic model Roo creates for Activities and Places (e.g. AbstractProxyListActivity and ProxyListPlace). There is a lot to keep track of for devs in 'MVP', without this additional abstraction and knowing which methods to override, etc. Seeing as Roo does all the scaffolding, why not just create a 'flat', non-generic Activity and Place for each Entity. It makes the code developers have to work with simpler (when they eventually have to customise it :) ), and it provides friendlier URLs.
 
Thanks very much +Pete Thomas . That is a really neat solution, and removes my biggest obstacle with Roo/GWT.
 
Thank for sharing and make me less concern about its future. I am development web application using GWT, it's a legal system
 ( http://www.facebook.com/pages/ILegalMan/391744724188559 ) . GWT make web application more easy I can learn and develop compare to JSF.. It's OOP straight forward make all widget reuse seamlessly. Thank to GWT.  See 
 
Adding one more to the roster of Google products built on GWT: Google Car Search http://goo.gl/UedBA  (launched in the last few months)
Add a comment...