I have a new colleague who needs some education about developing web applications in java. He has basic java knowledge and is almost not experienced with web applications.
Our standard toolstack is based on Wicket, JPA and Spring but I'm afraid of overcharging our new colleague with this.
Now I'm looking for suggestions about the best framework for web application that can be used by beginners. It should be using the java language and it should be easy to connect to a database (oracle, mysql,...). If JPA is involved its complexity should be hidden by the framework - at least for the first steps and for common development tasks (CRUD).
Recently I stumbled upon the play framework (http://www.playframework.org/). At the first looks it seems to fit our needs. Is there anybody who has some experiences with it?
I would certainly recommend the Stripes framework.
I was in a similar situation to your colleague a year or two back, relatively new to Java web applications and was given a small project. I had the choice of Struts or Spring MVC but opted for Stripes as it was considerably easier to get to grips with
It can also integrate nicely with Spring (check documentation for "Stripersist", examples are tied in with that)
I also wrote a quick tutorial on getting started, you may wish to have a read (admittedly I need to fix the syntax highlighting... :( )
First decide what your application is all about then go on with framework and patterns. Don't just build an application choosing the best in industry.
For instance eCommerce based application i would prefer ATG over Spring and for normal Web application i would go with Struts or Spring depending upon the complexity of the application.
Play is the best java & scala framework in my opinion. It's easy, powerful, used by many projects (http://www.playframework.org/community/testimonials) and have a high momentum. Grails is buggy, spring roo is like a aop template generator and spring become as cumbersome as Java EE. Development with play is very fast (play team won the devderby 2010 bypassing ruby,php and asp.net teams) and efficient.
my best
Serdar
I'd recommend he get started on Wicket from day 1.
If he's done any desktop development in a previous life then the event driven architecture of Wicket will most closely match that. The Request/Response paradigm of traditional HTTP that most older Java frameworks follow (JSP etc.,) is fairly prehistoric and I don't see why you would want to side track him on that instead of getting him up to speed quickly on the much more productive event driven, component oriented paradigm of Wicket.
Ah I remember the old days... JSPs. actions, .do's, XML config hell. Sure I could do it but these days a developer's life can be so much more productive using a well designed framework with a smart paradigm like Wicket.
SpringMVC is the obvious way to go because you already use Spring in your stack so other developers will be able to help if he gets stuck. Have him sit down with the tutorial and develop his own application.
Although the Play framework looks great (thanks for pointing it out) I would advise not using it as a tutorial unless it meshes well with your future plans for your framework stack. I mean, what's the point of your junior guy learning something that the rest of you have no intention of ever using?
If you're already using Spring, why would you introduce yet another technology? Why is Play an improvement over Wicket or Spring?
Personally, I would recommend sticking with Spring: Spring MVC without Wicket, simple JDBC template instead of JPA.