This week's Refcard covers Apache Wicket, one of the most popular web frameworks of the moment. We discussed Wicket and the refcard with the author, Andrew Lombardi.
DZone: Could you introduce yourself please?Andrew: My name is Andrew Lombardi, I'm the owner of a software consulting firm Mystic Coders. We've been in business helping our clients take their functional vision, and implement it on the web, the desktop, and the enterprise. Personally I've been programming since i was very young, starting off on the Apple //'s in Basic, Assembly, and whatever I could get my hands on, and up through other fun systems, VAX/VMS, PC's, and most recently in love with my unibody Macbook Pro. The company was started in 2000 in the middle of the meltdown of the tech sector, and through the last decade we've been busy building and growing our clients, our knowledge, and our ability to solve the problems that need solving. Apache Wicket is a nice fit for us, a great tool that we've had in our arsenal for a while now and totally enjoy working with.
DZone: How long have you been using Wicket, and why?
Andrew: I've been using the framework for about 3 1/2 years now. My first introduction to the framework was eye-opening. I had been doing various forms of Struts, Webwork, and Stripes development for many years and was starting to burn-out on the procedural programming that I had been forced to adhere to. And the XML didn't help my frustration level. I use Wicket because:
- It eschews complexity for the simple
- No XML anywhere near it
- Templates are HTML, no need to learn yet another syntax to code functional aspects of the page
- It feels like programming again
DZone: What is the main difference between Wicket and other frameworks? What problems does it solve?
Andrew: Wicket is primarily a component oriented framework. Because there are not a lot of custom tags in your HTML, it puts a lot of the functional aspects into Java code, which means its refactorable, and easy to debug if there's an issue. It is also based on a very simple component model, so reuse is drop dead simple, and you can see some of the best implementations in the wicket-extensions library. Wicket shields the developer from a lot of the grunt work that is necessary in other frameworks, session access becomes similar to dealing with a POJO and interacting with actual Objects not just a glorified HashMap, and the AJAX support is very easy and doesn't feel like a bolt-on. So if you're looking for a simple, reusable, non-intrusive and scalable platform to build your next web application on, you would be wise to take a further look at Apache Wicket.
DZone: How do you recommend to get started with Wicket?
- Join the user mailing list - email@example.com and join us on Freenode at ##wicket, my nick is: kinabalu
- Go buy Wicket in Action, authored by two of the core committers, it is a fantastic book
- Read examples in the Wiki - http://cwiki.apache.org/WICKET
- Read more examples on - http://wicketbyexample.com
DZone: What is your top tip to Wicket users?
Andrew: Learn about Model's and get through examples or a simple project to understand them. They are a very powerful construct in the framework if you know how to take advantage of them.
DZone: What's coming up for the future in Wicket?
Andrew: 1.4 re-introduces generics into the framework, so there are some changes in usage to take advantage of this. Some refactoring was done to Spring support, library name changes, wicket-spring and wicket-ioc are all that is needed now, wicket-spring-annot is deprecated. And a change to the deployment configuration name in web.xml from "configuration" to "wicket.configuration" to avoid name collision. So the biggest thing coming up, is generics.
1.5 is in the planning phases right now, so there isn't a consensus yet on the featureset. Some of the requests: model refactoring, a much improved rewritten Ajax implementation, more Java 5 support, improving WicketTester, and many more. After using the framework a bit, make your wish list known on the Wiki here - http://cwiki.apache.org/WICKET/wicket-15-wish-list.html
DZone: Is there a vibrant community for Wicket users?
Andrew: Definitely. The mailing lists are very active, and questions are usually answered pretty quickly. Several folks also hang out in the Freenode IRC channel ##wicket including many of the core members of the development team. The team has always been very transparent about upcoming releases, features, and has a great response time on committed bugs (so long as you submit with a test case).
Andrew Lombardi is one of a new breed of businessmen: the enlightened entrepreneur. He has been writing code since he was a 5-year-old, sitting at his dad's knee at their Apple II computer. Having such a deep affinity for the computer model, it is no surprise that at the age of 17 he began to delve deeply into the inner workings of the human mind. He became a student of Neuro Linguistic Programming and other mind technologies, and then went on to study metaphysics. He is certified as an NLP Trainer, Master Hypnotherapist and Time Line Theraphy practitioner.
Using all of his accumlated skill, at the age of 24, Andrew began his consulting business, Mystic Coders, LLC. Since the inception of Mystic in 2000, Andrew has been building the business and studying finance and economics as he stays on the edge of computer technology.