A Positive Wicket Experience
Julian Sinai recently released the first version of his company's product based on Wicket. In A Year of Wicket, he describes the experience (emphasis mine).
I've been working with Wicket for almost a year. We've just released our first product that uses Wicket for the user interface, and so it seems like a good time to take stock. Unfortunately, it's not a public site, it's an installable enterprise product, so I can't show it to you. If you don't want to read further, here's the executive summary: Wicket rocks!
I was hired as the GUI Architect for this project. I came to it with many years of GUI experience, mostly using Swing, but without a lot of web development experience.
Because of my Java and Swing background, I was drawn to Wicket. It maps fairly closely to the Swing model of development. So does GWT, but when I evaluated it, it seemed so different from other J2EE frameworks that I felt it was a step too far. No HTML, and no WAR files, for example. This made my colleagues nervous, who were used to Struts and PHP. Me too, as a matter of fact.
I had done some pretty serious prototyping for another project with Tapestry, and there were certain things I liked, like runtime bytecode generation. But the learning curve was pretty steep. At one point I needed to create a custom component, and to do so I needed to learn about engine services and other arcane things that I felt made the process too hard. By contrast, custom components are Wicket's bread and butter, and they are very easy to build.
I also took a close look at JSF. It seemed overly complex to me, and not much of a departure from the Struts era. It came across as a technology designed by committee, with the combination of several complementary libraries required to get the job done, and there are still too many configuration files.
So we decided to use Wicket.
...
One of Wicket's advantages is the strict separation of design from behavior, that is, HTML from code. While we did not have a web designer on the team who built the HTML (the developers did this), and therefore didn't get any mileage from the separation in that sense, we definitely gained from having all the behavior in Java code, because it gave us all the power of refactoring, compile-time error checking, and maximum reusability.
[Read More]
I really like how Julian talks about reasons they didn't choose other frameworks. Beyond that, I think it's important to note that Wicket was a perfect fit for someone with heavy Java and Swing experience. I still think Wicket is a little verbose for Web developers that program in Java (me), but it's unlikely there's very many of those. Building a form in Java seems so much more cumbersome than building it with HTML - but that's probably just me.
Posted by Steven Citron-Pousty on January 18, 2008 at 08:10 PM MST #
Posted by Jonathan Locke on January 18, 2008 at 08:44 PM MST #
Posted by Rick Hightower on January 19, 2008 at 08:34 AM MST #
I am currently investigating Wicket for use in an enterprise product.
TBH, I've been having trouble sleeping for the past week coz I can't stop thinking about the damn framework!
I haven't had this much fun web programming for years :). Wicket is something special.
Check this web cast for a pretty cool bean editor which really highlights how you can leverage wicket as a basis for your development.
I'm now messing with custom annotations for various things like "selection type" and validation stuff.
I do look forward to a day when wicket is generics based.
Posted by Ned Collyer on January 19, 2008 at 02:01 PM MST #
Posted by AT on January 19, 2008 at 04:29 PM MST #
Posted by Yop on January 28, 2008 at 01:49 PM MST #
I just want to say that what Jonathan Locke said is extremely important. Most people don't even think in terms of reuse for web apps because it's either impossible or creates so many other issues with the framework of choice that it's just not worth it. That's very much the opposite way of thinking for a wicket developer. Once you start to "think in Wicket" you will find that although there's more Java coding up front, that you will reuse a ton of code. Reuse in Wicket is so trivial that some developers even reuse very small portions of a screen like an entry field or an entry field with it's label. This is something you just don't think about with any other framework.
So, when looking at Wicket, forget everything you've learned about web development up to this point because all it will do is cause you to be a crappy Wicket developer.
Posted by Sam on March 26, 2008 at 07:03 PM MDT #