GXT is cool, but painful


Let me start by saying I’m completely on board the thin-client bandwagon. I think lightweight web applications are the future of everything from simple apps to enterprise software, and loved the premise of the Google Web Toolkit (GWT) from the start. So naturally when I had a chance to use GXT – Ext-JS’s framework that bridges their sexy JavaScript library with the promise of GWT development – I had high hopes. So far, I still feel the potential but can’t bring myself to love it quite as much as I want to.

The whole point of GWT is to take fragile and tedious web 2.0 development and make it feel like you’re actually building software: write one set of code that’s reusable and browser-agnostic, add handy modern language features like generic types and annotations, support a (relatively) fast change and deploy model, and best of all, at the end of the day still build good-old-fashioned HTML and JavaScript that runs in any browser: no Flash, Applet, Silverlight, or hardcore server-centric architecture required.

The core GWT guys get this and have made huge strides. The biggest beefs like IDE integration, richer hosted mode, and faster compile are all getting addressed. Integration with standards like Spring and Hibernate are already there and work amazingly well, if not quite out-of-the-box. For example, check out Giving GWT a Spring in its Step and Gilead.

By itself Ext-JS is also a great JavaScript library, with some of the best looking and most functional components out there. But so far their take on GWT misses the mark. The framework’s architecture – and more importantly, day-to-day use of it in real application code – screams JavaScript at every turn. Yes, I know this code will be used to build more code that runs in a browser at some point but it’s not supposed to constantly remind me of it! I don’t like switching between strongly typed objects and BeanModels full of string properties, having to bury myself in ten levels of CSS to make any slight component change look good in both Firefox and IE, or find their generic contortions that entertaining. It’s like the Ext guys are so lost in JavaScript that they missed the point of GWT.

The irony is that they’ve built a lot of tools that solve these problems individually quite well: there’s a BeanModelTag that will assemble reflection-like metadata when beans are sent to the UI and provide it on-demand using a factory from the bean, allowing you to switch between their models and the original beans as needed. The css for the components themselves is incredibly specific, well-organized, and for the most part consistent. The event framework, while not totally complete, is easily extended. These pieces just need to be put together with some level of configuration and convention so that day-to-day application code can focus on the look and feel instead of boilerplate MVC connectivity. In short they need to focus on how Java developers build applications, rather than how web developers can write the same kind of client code in Java. I’d love to be able to populate data in a UI component by doing the following:

  1. Write the server-side Java service
  2. Expose the service with simple annotation-based name and/or URL
  3. Create a client component that takes a data store and assign that store to the service endpoint

Ironically, this is the kind of thing that JSF components via Seam and Flash via Flex with BlazeDS do really well. The Ext components look way better than any JSF component library and are easily on par with their Flex counterparts, and that eye-candy appeal wins them a lot of ground (especially from those non-technical decision makers!). Architecturally, not depending on Flash or a heavy Java server puts them ahead of the curve: just put some implementation-level polish on it please!

I still have high hopes for GXT 2.0 which is currently in preview. The project I’m working on is standing by on 1.2.3 for now but we’ll switch over eventually and see how it goes.

, ,

  1. #1 by chivaspress.com on October 17, 2014 - 10:51 pm

    They are a very good way to promote business service. Today, lots of
    websites and blogs bring in unheard of income for their owners merely by promoting another’s company on their web pages.
    For more information visit: security gives you the protection from all kinds of
    worms, viruses and other problems.

  2. #2 by antique sextant prices on October 18, 2014 - 12:30 pm

    These grownup toys are very helpful for women’s sexual
    well being.

  3. #3 by vimeo.com on October 21, 2014 - 3:43 am

    Although you could switch to organic (a really suggested choice),
    the option could be pricey and may possibly not be easy for all create,
    depending on in which you reside and what is accessible in your neighborhood.
    But even more concerning was I contacted Jeremy Saffron who is a good friend of mine and he told me that
    he too thought it was once good and he did more research and found out it really wasn’t.
    When you give your body a daily dose of these super foods it’s like
    renovating your body the way someone would renovate an old house that has seen better days.

  4. #4 by daily news on October 25, 2014 - 11:04 am

    What’s up colleagues, its enormous paragraph regarding cultureand
    fully explained, keep it up all the time.

  5. #5 by boots and pants on December 15, 2014 - 3:28 pm

    Make sure that your socks are thick enough to ensure that your feet are warm and comfortable during the cold days.
    The Easyboot Trail model is a great boot for slow journeys (preferably a walk) on relatively level footing.
    She did the same thing again in 2003 and 2005 with the Classic Boots and the Uptown Boots, and they both immediately became a ‘must have’ item for
    Americans.

  6. #6 by next page on January 23, 2015 - 4:41 pm

    No, you can plan on guide to making money online not
    solving it. Without if some flowers for this terrible breakfast.
    I woke up, you’ll have to say? With itss awesome nightlife, this iss the former, I hope
    guide to making money oline you will enjoy it. Having once this juice
    I’ll drop the love juice. But in the forests and climb bare hills, where the bees find it intolerable annd
    swarm from the garden.

  7. #7 by Gra Do Pobrania Warez on January 24, 2015 - 2:12 am

    You can make new things with equipment that you created yourself.
    So let’s have a look at what people say in defence, or just ignorance:
    . You will find yourself presented with much more content than you will know what to
    do with, especially as Netflix keeps getting new licenses.

  8. #8 by Torrentz on April 22, 2015 - 2:34 pm

    Net Turtle enables you to download anything from the Internet, even when there can be a limit on the Black – Berry for file size.
    Bhaktapur is definitely an ancient town east of Katmandu within the Katmandu Valley.
    Christmas may be the only birthday I know of that the One Whose Birth we’re celebrating gives the gifts in lieu of
    receives them.

  9. #9 by rsjdahm.kaltimprov.go.id on October 25, 2015 - 5:34 pm

    Unlike other DC location duct cleaning companies, we use effective truck-mounted vacuum systems..

  10. #10 by price on January 7, 2016 - 9:43 pm

    Hello There. I discovered your weblog the usage of msn.
    That is a very well written article. I’ll make sure
    to bookmark it and come back to read more of your useful info.

    Thanks for the post. I will certainly return.

  11. #11 by price on January 8, 2016 - 4:47 am

    There is certainly a great deal to find out about this subject.

    I love all the points you have made.

(will not be published)