Matt RaibleMatt Raible is a Java Champion and Developer Advocate at Okta. developer.okta.com

The JHipster Mini-Book The JHipster Mini-Book is a guide to getting started with hip technologies today: Angular, Bootstrap, and Spring Boot. All of these frameworks are wrapped up in an easy-to-use project called JHipster.

This book shows you how to build an app with JHipster, and guides you through the plethora of tools, techniques and options you can use. Furthermore, it explains the UI and API building blocks so you understand the underpinnings of your great application.

For book updates, follow @jhipster-book on Twitter.

10+ YEARS


Over 10 years ago, I wrote my first blog post. Since then, I've authored books, had kids, traveled the world, found Trish and blogged about it all.

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 in Java at Jan 18 2008, 12:37:18 PM MST 7 Comments
Comments:

I just wrote a piece about my experience with Wickets and I mentioned the cumbersome nature of forms. My discussion was more about Frameworks versus web services and a good JS library.

Posted by Steven Citron-Pousty on January 18, 2008 at 02:10 PM MST #

Sure, forms are cumbersome if you construct them one little piece at a time as in examples. But this assumes that you don't ever compose them out of higher level pieces or automate their construction in any way. Wicket is set up to create leverage through object reuse. Take a look at Wicket Web Beans for an example of how you can leverage Wicket components to make form construction easier AND more flexible. I don't know that project that well yet, but it's an instance of a whole class of solutions that can easily make forms far, far easier to construct without winding up with the sort of brittle, non-extensible systems that I hear you get from something like ROR scaffolding.

Posted by Jonathan Locke on January 18, 2008 at 02:44 PM MST #

Good post. Maybe I need to rethink Wicket.

Posted by Rick Hightower on January 19, 2008 at 02: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 08:01 AM MST #

Sure Wicket Rocks, I'm been working with it for a year and I am very pleased with it. Matt, I am waiting for the integration with Appfuse 2.

Posted by AT on January 19, 2008 at 10:29 AM MST #

I looked at Wicket about halfway through development of my program (which, up until then, was all JSP / JSTL) but decided it would take me too much time to switch the whole thing to Wicket. I had been spending a week typing out rather large and many templates (i.e. templates that display all the contents of all the possible elements in a Maven pom.xml file), and didn't feel like transferring them all to Wicket. But if I ever have to make a Java webapp again, I'll certainly check it out.

Posted by Yop on January 28, 2008 at 07:49 AM 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 01:03 PM MDT #

Post a Comment:
  • HTML Syntax: Allowed