I used Spring a few years ago and was really impressed with it as a framework.  I found that for less experienced developers it enforced a lot of good programming practises.  Unfortunately in the last couple of years I haven’t worked in companies that were using it.  In my current comany, the decision was made to opt for Seam instead of Spring.  Primarily, I think, on the basis that it was newer, and therefore ‘better’.  The jury is still out for me on which is better, or whether you should use both.  I’m starting to get more comfortable with Seam now.  Especially with the concept of conversations and how to use them.  But it can be quite difficult to figure out which of the many different ways of using the framework is the most optimal once you veer away from code that copies the provided examples closely.  I still find myself constantly skilling up on Seam to try and stay on top of the architectural decisions that need to be made as we continue coding.  While it’s a good framework, you really need to understand what you’re doing to use it effectively.

On the other hand, Spring has progressed quite far since I last used it.  There seem to be far more companies using it than Seam.  It’s hard to know if this is just because it has had a head start on Seam or not.  Not having used the newer Spring features I find it hard to compare and contrast against Seam.  With a busy schedule in work, it’s difficult to find enough time to get to the point where my knowledge of both frameworks is equal.  In an attempt to rectify that, I’m sitting the SPR-001: Core Spring course from Springsource next week in Edinburgh.  I’m looking forward to getting back up to speed with Spring and seeing how the most recent version compares to Seam.