I’ve had a love and hate relationship with Google Web Toolkit for a couple of years now. I built a modest size project using GWT back in 2010, which was definitely during a time of some GWT 2.x related growing pains, suffered through the uncertainty of Google abandoning GWT in favor of Dart, then watched the whole project get handed off as open source to for a long descent into obscurity.
I’m contemplating a larger project again, one with a significant web front-end. And GWT 3.0 is on the horizon, right? I went back to dear GWT to build a few small widgets, trying to see if maybe things were better now. Six widgets down this path, I’m throwing in the towel. And here’s why.
I mean, don’t get me wrong. GWT seems to have the smell of death all over it on it’s own. As far as I can tell there still isn’t any kind of proper date data type, even an emulation of the Java standard library classes. Google, the biological parent, has essentially kicked the kid to the curb. Looking at GWT questions on StackOverflow is like staring into room full of starving lonely people. If I had to get a question answered there or even in the hoary old googlegroups thread, I’d probably need antidepressants.
But GWT still worked, did basically what was advertised, and it was familiar.
I’ve got a long relationship with Eclipse as well, going way back to when it was an IBM product called “VisualAge for Java” that (I think) was originally written in SmallTalk of all things. I ran a good sized team building desktop front-end applications in Java in the early 2000’s. This one application has forever convinced me that nobody should be writing desktop applications of any complexity in any language running a VM. Simple typing in Eclipse is an exercise in torment. What do you imagine you do, every second of every minute, all day as a developer in an IDE? Typing. If your IDE sucks at that, nothing else matters. I find myself wondering what the people actually working on Eclipse itself think about it, but I suspect this is one of those situations where when you’re so close to the problem you don’t realize how bad it is (Hint: VERY bad). I’m sure somebody loves it. But I’m sure they’ve never actually worked with anything else. Including a manual typewriter, because even that would be less frustrating than writing code in Eclipse’s text editor.
And if Eclipse on its own wasn’t enough to make me want to torture small forest creatures, GWT on Eclipse was driving me really insane. The build process was slow, buggy and complicated. For projects that didn’t need a backend, I could still never get a configuration to launch without Jetty. Occasionally I’d screw up something in my project settings that would prevent me from being able to launch debug configurations, and I’d recourse to creating an entirely new GWT project and bring all the source into that. It was lunacy of the sort that made you beg for makefiles.
I explored other options… I could never get GWT working right in IntelliJ even if the text editor there was a little more sensible, and when it came time for widget #7, the despair was palpable and I realized I was finally, utterly, completely, done.
Widget #7 wound up coming to life with nothing more than a shell prompt, BBEdit, Transcrypt and the Developer Tools in Google Chrome. And I couldn’t be happier.
Goodbye old friend.