GWT alternatives??

7 points by andrelewis ↗ HN
I've noticed there seems to be a few frameworks in python (Such as the Pyjamas project, or Pyjs) that allow you to code in a consistent language like Python or Java and output fairly fast, optimized Javascript front ends. I've been hammering away at using GWT for my front end, mostly because it creates the split browser specific resources and optimizes things like image loading via ImageBinder. I'm a big fan of these optimizations, but I find that I spend 90% of my time configuring environments, dealing with obtuse error messages, dealing with idiosyncrasies of project layouts, screwing with Maven, etc etc etc. I spend less than 10% dealing with the business problem and it's a bit frustrating.

I've looked at frameworks like Pyjamas, Ukijs, Sencha etc. I really like Sencha, but of course it's pretty much overkill at this point. Pyjamas and Ukijs both seem to be mising any recent coding activity and don't really address the optimizations I am after. Does anyone have any suggestions on frontend widget libraries that are lightweight, well supported and perhaps can simulate the Imagebinder functionality? Or should I just bite the bullet and keep plugging away with Gwt/Gxt etc?

Backend I am doing (preferably) Json/Restful services for everything . Thanks for your input :)

10 comments

[ 6.3 ms ] story [ 33.0 ms ] thread
Why not work with a JavaScript front-end framework like Dojo or Require.js/Backbone/jQuery? while it is a little bit of upfront learning it is in my experience far more maintainable and a faster development cycle. There are a lot of good REST frameworks for Java on the back-end that require very little in the way of configuration and working directly with JavaScript on the front-end simplifies a lot of issues.
I like jQuery, though it's not a widget provider, Dojo I've consistently run into compatibility issues with over the years, as it seems a bit IE-centric and it's still pretty heavy weight. Although I did notice the newest version seems to boast a revamp.

I liked YUI a lot, and it's clear they put some really solid engineering into their framework but it's a rocky road for Yahoo and they haven't really been updating their api's.

I'm trying to reduce the number of dependencies and like the ability to only load what's needed for a page. Realistically though I am after the equivalent of ImageBundle in GWT, that combines images into one image and maps all the related CSS/JS refs to the single image map.

I'll check out Dojo again but I'm still curious what else is out there?

Dojo I've consistently run into compatibility issues with over the years, as it seems a bit IE-centric and it's still pretty heavy weight.

I have used Dojo since .4 and have not had many cross browser issues, and the few I have had have mainly been concentrated in IE6 I think I had one issue with FF in that time and it was in one of the dojox libs and one issue with Safari which was a bug with Dojo and was resolved with the next release.

As for it being heavy, Dojo does have a wealth of libraries in it, but the Require.js build system strips the production release of Dojo down to what you need, as well now that they are using requires you can bundle all of your assets up into the build.

On the subject of ImageBundle I don't know the implementation details, but I would assume that it is just generating HTML Image Maps and/or CSS sprites which is pretty easy to do in PhotoShop as well there are a bunch of online generators where you upload a set of image files and it generates the coordinated for each one for you. Here is a link to a sprite generator http://csssprites.com/ . I don't think you will find a pure JavaScript library that does that for you, as most people just use PhotoShop or one of the online applications.

Thanks for your reply, I'll give it a go. I'll be going through a learning curve no matter what I do, but I think I will actually be more productive coding it directly. I'm off to see how to integrate coffescript with Dojo, should be fun :)
no problem, let me know if you have any issue, I will help as much as I can, my email is in my profile. As well feel free to connect with me on LinkedIn if you have an account.
I concur. I've lately switched away from GWT/GAE to something more like rails/jquery hybrid.

GWT does have some nice things to it, but I think in the grand scheme of things, the best part of it is the separation between server/client, and the forcing function of having to do rendering on the client, where it should be done in the first place.

With jquery, tho, you can achieve a very similar effect .. just have a div with an id and convert it to widget in one line. There are far more , and much more well written widgets on jquery, than on gwt. It is a little more work, but I think it is well worth it.

GWT has two big disadvantages. Opaque results and slow builds. If your image situation is so dire that the inclining and spriting are more important than those... well it just doesn't sound like fun.
GWT doesn't work well with Maven. Support has improved recently but is still terrible.

I may just be hitting a lot of outlier samples but Google Java projects seem antagonistic to Maven (I've used GWT, GAE and GData). GData's really bad; see comments at: http://code.google.com/p/gdata-java-client/wiki/Dependencies

I'd never have ended up using GWT if I'd tried it first as a mavenized project. But GWT itself is a really beautiful toolset and I'm sad to see it abandoned because of a weakness in one area. It's really frustrating that that weakness is probably the first thing that a whole bunch of people will run into when trying it out.

Also if you don't have to use GXT, don't. It is rubbish.

GWT has quite a learning curve. I'm 5 months into GWT/GAE, not counting preliminary research/learning, and am only now starting to see a return on my time investment. Looking back, I'm glad I decided to roll my own small framework for GWT/GAE; everything else just seemed inflexible, overkill, and too proprietary. I recommend taking a look at http://www.gwtapps.com/ which has been very helpful through my journey, even if it's somewhat dated.

There's practically zero support for Maven in the GWT documentation, and it's a shame because it seems much more elegant than just Ant. Ant is probably what I hate most about GWT, but beyond the initial setup, I haven't dealt with it much other than simply running "ant build" and "ant devmode".

My honest advice is unless you really like working with Java or are already past the learning curve, just go the HTML5, Backbone.js, Bootstrap/LESS, and Coffeescript route. GWT's worth the investment but the web standards it's built on will still leak through on sufficiently complex projects. Also, I couldn't see myself doing GWT if I wasn't also doing Java GAE, because GWT-RPC makes AJAX so painless.