The first victim in our "Meet the Wicket Community" series is Nino Martinez Wael. Nino is a very vocal contributor to our community, and one of the most active folks on the mailing list, and probably responsible for about half the projects on the Wicket Stuff project. His latest community effort is establishing the Wicket merchandise shop. I'm looking forward to meeting Nino at Øredev in Malmö in November. Being such a visible member of our community, I wanted Nino to be the first interviewee.
A big thank you goes to Nino for being so quick with his answers. Let's get started with the first interview!
Can you please give a short introduction to yourself?
I live in Denmark, with wife and child, one more due this January:) 29 years old and am a graduate in computer science in IT, in Denmark it's called Datamatiker. I've been working with software development for the last 6 years. I am a committer on WicketStuff.
Nino Saturnino Martinez Vazquez Wael doesn't sound very Viking to me, are you the 13th warrior? :)
Well sort of, it's a long story but to sum it up my father originates from Galicia, and sometime loong ago it was overtaken by the Moors.. And there you go, the 13th warrior :) The Vikings have also visited Galicia at some time.
For which company do you work, what does it do?
I currently work for Jayway Denmark, a java consultancy firm. Im doing all sorts of different stuff, but wicket's always there somewhere.
I know Jayway is investing into Composite Oriented Programming (see http://qi4j.org), and that you are responsible for the web part. Can you tell a little bit about COP and how this will improve our day-to-day development (I'll get to the wicket integration later)?
In short the idea are to use composition instead of inheritance. The mindset are very different than ordinary object oriented programming. But more DRY since you can reuse across class hierarchies.
The Qi4j site has some very nice examples on usage, including a 2 minute walk through code example.
When will we be able to use COP in our day-to-day programming (or are you using it already?)
I'm not using it on day to day programming, but you can. There's already extensions for stuf like REST, RMI and iBatis. There's also some Swing support in there. But it's still early days.
Are there any lessons already to be learned from COP (don't do this… do that…)
I use it too little, to be an expert.
You are working on integrating Wicket with qi4j, how is that coming along and are there particular issues you ran into?
Slowly. Currently I'm in a idea phase building up a tool base in order to support an integration with Qi4J, stuff like the Wicketstuff Iolite and WicketTopia are amongst these. It's still mind shaking thinking in Qi4J/COP for me. I'm hoping that we can set something in motion on this years Øredev. I know Rickard Öberg will be there.
How did you first find out about Wicket?
Some time ago, when working for SAS Institute a former employee had set something in motion and it turned out to be Wicket. We had an upcoming project to do and had to decide between plain JSP, JSF and Wicket. We chose Wicket.
How long have you been using Wicket?
I've been playing the Wicket vibe for something like 3.5 years now.
What other web frameworks have you used and how do they stack up to Wicket?
Well the most "real competitive" framework I've used are Microsoft .net. It's been somewhere around 4 years since I've touched that, and it comes up very short to Wicket and Java in general, primarily because it's closed source code. If you have problems doing something or are in doubt of something you can't checkout the source. If you are using open source everything are usually free, you can just go in the open source mall and grab what you need for your project.
I also like the fact that it are so easy doing components with wicket. At some point I had the pain of looking a bit into Struts but quickly got away from that, there's just so many things wrong with Struts. I've often thought that I should look into something else than Wicket, but in the end I know so much about Wicket it's hard justifying. I've touched stuff like GWT, RAILS but I've only scratched the surface.
How does your development environment look like (for example IDE, frameworks, servlet container, JDK version, etc)?
For the environment part it depends on the customer, but usually it's like this:
- Tomcat either 5 or 6
- JDK 5 (I'm a Mac guy so I'm going into JDK 6 right now)
- Ubuntu server (although this varies a lot)
IDE, frameworks (if I get to pick)
- Eclipse JEE 3.4, previously I used MyEclipse but found out that with my stack I really didn't utilize it.
- JPA, with hibernate as persistence provider and switching to OpenJPA for better error messages, that means if I run into trouble doing hibernate I switch to OpenJPA and get a nice error message, then I fix the problem and switch back to hibernate.
- Maven2, with cobertura
- Apache Wicket
- Spring (although I need to checkout Guice)
- some kind of CI, like hudson…
- JMeter for performance measures.
How does this compare to the deployment environment?
Pretty much similar. Usually there are more power(CPU/ram/disk) in deployment/production. Sometimes even clusters.
What are Wicket's strongest points?
Well, I believe that these are some of them:
- Clear separation of markup and logic
- Java almost all the way
- Real object oriented
What are Wicket's weakest points?
If I look at the mission objectives, none.
I think there could be room for some more convenience's components. I've heard the phrase "it's trivial so do it yourself", a little too often, I guess it's a difficult balance to keep. If I should say something that wicket are missing it would be a full stack of layers, that's why i did Wicket Iolite and now are looking into WicketTopia.
If you could put one feature in Wicket, what would it be?
Some sort of markup caching mechanism for mounted urls, panels etc, easy configurable.
Rich internet applications (RIAs) are hot now, what is your experience with them, and how does Wicket fit into this RIA future?
I've done a lot of RIA and several contributions to wicket stuff regarding these things. Wicket fit's very well into RIA, and if you stumble on some component that you just got to have in your application it's very easy to integrate with wicket. I've had fun with OpenLayers, Google maps, Accordions tool tips, rich text editors and lots more. Wicket always comes through :)
Where would you take Wicket the next year?
I'd look into the test part of wicket, if you test using Wicket tester with ajax it becomes a bit too troublesome, would be nice if it were more transparent. I'd also try to arrange a meetup for the core team developers, and make a code review and focus session. Have a little focus on convenience.
Any closing thoughts or remarks?
GOO Wicket. And the Wicket merchandise store will open again any day now :)
Update: added link to WickeTopia