As far as I can tell we've built and deployed the first live GWT
production application on the Colorado HomeFinder website,
www.COhomefinder.com. (Anyone else out there too?)
In the last week or so we've progressed from a trivial application to
integrating a small GWT component with our substantial server side Java
application based on struts/expresso. All of this was in an effort to
evaluate GWT and see how it works with our application.
You can see the end result of this, our GWT mortgage calculator,
running live on the Colorado HomeFinder website:
http://www.cohomefinder.com/Colorado-mortgage.htm
You can also see it integrated with each of our MLS listing pages where
it pulls the property price, taxes, etc from the database and
pre-populates the calculator. See the first link or click through to
the mortgage payment on any listing in the second link (in case the
first property is sold):
http://www.cohomefinder.com/p/80209/241506-6.chf
http://www.cohomefinder.com/browse-ci-Colorado-luxury-homes.htm
We thought it would be fun to document this effort and even provide the
source code! See links to the source and step by step instructions in
this post:
http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/d1b0ad5d115e4861
There are not many reviews of GWT out there since it's so new. I've
done a bit of technology evaluation in the past, so I thought it might
be useful to post my thoughts about GWT following this exercise.
First and before all else I think it's critical to decide if GWT is a
good fit for your organization and for your application. Don't choose
GWT just because it's the latest cool technology or because it's from
Google.
Where I believe GWT fits well:
1. A Java development team. I don't see any reason to learn Java just
to use GWT given all the other great non-Java AJAX frameworks. GWT
fills a sizable niche allowing Java developers to avoid using
Javascript and to build AJAX applications in their native language.
2. A Java server side application. While GWT can use any server side
technology, Java is clearly the GWT sweet spot for server side
integration and toolkit support.
3. An application with requirements that match nicely with GWT features
and functionality. Compare your application's requirements matrix with
the features of GWT vs. the features of AJAX frameworks. Don't
reinvent the wheel.
Where I believe GWT fits poorly:
1. An application or website without a Java back end. It's possible to
use GWT with PHP, ASP.NET or any other server side technology, but I
doubt there are many cases where it makes sense.
2. Any place AJAX doesn't fit regardless of toolkit: where an
application needs to provide disabled accessibility, to be crawled by
search engines, or needs to work with javascript disabled.
3. A large web application, at least for now. GWT is too young and
will likely change too much over the coming months to recommend
building a large code base on GWT, yet. As with any new API/toolkit
GWT is likely to change as it grows up. Consider the cost and risk of
upgrading your code as GWT matures.
So, if GWT is a fit for your team and application, below are what I see
as GWT's strengths and weaknesses.
GWT Strengths
- Single programming language for client and server side.
- Familiar event driven GUI programming model similar to Java Swing.
- Object Orientation allows AJAX component development.
- Familiar and productive Java development tools.
- Open source GWT libraries.
- Exceptional community support and activity for a toolkit this new.
GWT Weaknesses
- It's an immature framework with no proven track record.
- Still some bugs to work out - GWT is solid but very young.
- Documentation is still lacking, but better most open source project
of similar maturity.
- The GWT compiler is closed source. It's free but we depend on Google
for updates.
Conclusions
As a developer I'm very excited about GWT, mostly because I personally
couldn't code myself out of a wet paper bag in Javascript. While I
could learn Javascript I'd really prefer to stick with Java. Six weeks
ago it would have been a challenge for me to build a rich AJAX
application. With GWT it is now fairly straightforward for me to do so
with my choice of programming languages, Java. Thanks Google!
While many web developers will complain about the event driven GUI
programming model of GWT, I personally enjoy and prefer it to
traditional web development. It's just more familiar and comfortable
for me even after years of traditional web development. I suspect the
same holds true for many other Java developers.
As CTO, I'm also excited but more cautious. GWT provides a wonderful
opportunity to add AJAX features onto our existing Java web application
using our existing skills, and it's open source. Architecturally, I'm
comfortable with compiling Java into Javascript, as we've been
translating languages for decades. I will, however, l limit our
exposure to this exciting but immature technology until there is proven
adoption and long-term community support.
We'll be moving forward with GWT, incrementally adding simple
stand-alone AJAX features to www.COhomefinder.com. Down the road 6-12
months we'll evaluate the toolkit progress, community support, and
momentum prior to making a more substantial commitment to GWT.
I'll try to keep the group posted as to our progress. Thanks for
listening, and thanks Google for providing this exciting technology.
--
Anthony
CTO, Colorado HomeFinder
www.COhomefinder.com
p.s. See my short bio at the link below in case you are wondering what
a Realtor is doing reviewing GWT :-)
http://www.cohomefinder.com/about-Colorado-homefinder.htm