I decided to take a break from my duel with Tapestry and look into Wicket. It’s similar to Tapestry in that it’s a Java component-based web framework and I was really tired of smashing my head into the wall with Tapestry, so I started playing around with it.
I’m only had a handful of hours into it, so take it all with a grain a salt. The same with my Tapestry thoughts as well.
The code is more concrete in Wicket. I can write regular Java code that uses interfaces and inheritance to let IntelliJ IDEA know that the code is actually being used somewhere. Compared this to Tapestry which leaves my IDE with a plethora of grayed methods and variables.
By convention is fine in the beginning of a project, but it can become a nightmare as you work to maintain that code and forget whether that “unused” method is really used or not. I’ll take a extending a class over magic methods any time.
However, as I’ve gotten older, I’ve become lazier. The second thing I noticed once I got a project running is how little Wicket provides out-of-the-box. IoC? Install your own. ORM? Find it yourself. Wicket simply manages the “web” portion of being a web framework.
And that’s not necessarily a bad thing. It’s not shameful to do one thing well. But it does mean, I have to do more work at the beginning to make a useful web application. I spent last night getting Guice, warp-persist, and Hibernate to play nice. (There’s probably a useful blog post from that experience). Getting frameworks to work together is not the most productive thing I can do with my time.
I don’t mean to turn this into a Tapestry vs Wicket article, but I can’t help but compare them. Tapestry, out of the box so to speak, does offer IoC and Hibernate components. And Tapestry does a decent job without becoming a bloated, huge monster.
If I just went by Tapestry and Wicket, I would think open source fails at documentation. Luckily, Hibernate and Spring prove that good documentation is possible. I think both Wicket and Tapestry just need to reorganize most of what they already have written. To find the useful Wicket documentation, you have to scroll past the blurbs about how cool Wicket is to use, how you should have been using it yesterday already, and how you can get it now. Move past all that and you can get find some useful info scattered in the wiki.
As my spare time allows, I’ll continue to play around with both Tapestry and Wicket. I don’t want to rush into any decision and be stuck with it for the next few years. Right now, neither is jumping out and screaming “productivity” to me.
Leave a Comment