Spring Framework Has A Competitor Now
Spring+Hibernate vs. The New JBoss Thing (Seam, is it?)
In the last few years, we've heard a lot about Spring Framework and Hibernate. Lots of job postings with Spring and Hibernate requirements.
With the (beta) release of JBoss Seam 15 days ago, claiming EJB3 and JSF integration, the landscape is set to change.
I understand that there are other quote-and-quote web frameworks around, RIFE, for example. But somehow Seam stands out with its emphasize on standards. It being a product of JBoss lead by Gavin King, the Hibernate guy, also helps.
And it looks like it's going to be a battle between the JBoss guys and the Spring guys. Sparks is already flying in multiple websites and blogs. Here's one that's particularly entertaining. You need to read the comments.
Cast of characters:
- Gavin (King, JBoss)
- Bill Burke (JBoss)
- Rick Hightower (Spring?)
- Rickard (Oberg, not JBoss, Spring-ish?)
- Keith Donald (Spring)
- Andy (Oliver, JBoss)
Not that I don't like Spring. But it being a non-standard library and framework gives me an uneasy feeling. The same feeling that JGL and BWT gave me back in the old days.
Re: Spring Framework Has A Competitor Now
Keep in mind JBoss Seam is NOT standard. Seam is a JBoss move to get users to switch to their proprietary stack. It's that simple, and they wouldn't have it any other way. Look at the evidence, their motivation, and their history.
If you use Seam, expect also to require the use of JBoss MicroContainer, proprietary JBoss extensions not part of JSF or EJB3 or JPA, and to deploy to the JBoss server (which means relying on further JBOSS extensions). Expect a fairly high degree of switching costs and a substantial loss of leverage.
Are the benefits of Seam and the rest of the JBoss stack compelling enough to warrant the costs and the lock-in?
A lot of the issues here boil down to trust. A large number of people, including me, have come to trust the Spring brand to provide not only quality OS components, but a smart, highly adaptable and pragmatic foundation to build enterprise applications on for years now. This foundation has been proven portable accross a variety of configurations on leading app servers *on existing infrastructure*, and Spring users understand this. They also understand Spring integrates standards (EJB, JSF, JMS, JAX-RPC, JCA, JNDI, soon JPA, Servlets, JSR168, JSR3/JSR160, etc.) and works to protect investment by insulating changes in volatile/vendor-specific APIs to provide switching power and architectural choice/scalability.
Rod Johnson, Juergen Hoeller, Rob Harrop, and the other Spring leads are the strongest and most professional architects I've ever worked with, and that shows many times over when you review the quality and consistency of the entire framework, read their technical recommendations (for example, on the Spring forums), and look at the number of environments and products Spring has been deployed/used in the last 2.5 years.
Here is what you can expect Spring to do in response to this: you can expect Spring to keep doing what it is doing, with considerable more vocal vigor now that JBoss is entrenching upon its territory. JBoss is clearly the challenger playing on Spring's turf, where Spring has delivered high value results and innovation for years (JBoss is effectively trying to be a Spring clone to some degree: Bill said it himself).
It is indeed exciting all right, and you can expect Spring to continue to raise (reset?) the bar to keep the clone scrambling.
I don't see the standards pitch JBoss is using fooling many users. I'll vigorously defend the argument that a Spring-based J2EE architecture incorporates more standards with more consistency than a comparable approach on the JBoss platform, with at least three times the architectural leverage.
Best regards,
Keith
Re: Spring Framework Has A Competitor Now
Keith,
Thank you for putting forward the Spring side of argument. I agree with all of your opinions. Including this:
JBoss is clearly the challenger playing on Spring's turf, where Spring has delivered high value results and innovation for years (JBoss is effectively trying to be a Spring clone to some degree: Bill said it himself).
That is my conclusion too. Actually that's the main and only point of my post.
I also find your assertion
A lot of the issues here boil down to trust. ...
Rod Johnson, [and others] are the strongest and most professional architects I've ever worked with, ...
interesting. Without questioning the trustworthiness and the professionalism of the Spring team, I do think the argument has a tinge of Us Good, Them Mean flavor.
Re: Spring Framework Has A Competitor Now
you can expect Spring to continue to raise (reset?) the bar to keep the clone scrambling.At least two things are obvious:
- Provide more powerful AOP through much closer integration with AspectJ since Adrian Colyer, the AspectJ project lead, is now the chief scientist of Interface21
- Provide advanced features such as super performant messaging, robust distributed transaction management, etc. by leveraging BEA talents.
Re: Spring Framework Has A Competitor Now
Keep in mind JBoss Seam is NOT standard. Seam is a JBoss move to get users to switch to their proprietary stackThis is patently false. Seam is an attempt to make it easier to work with standards like JSF and EJB3, and is absolutely NOT coupled to JBoss. Seam will work in any appserver that supports Java EE 5.
f you use Seam, expect also to require the use of JBoss MicroContainer, proprietary JBoss extensions not part of JSF or EJB3 or JPA, and to deploy to the JBoss server (which means relying on further JBOSS extensions)Both of these claims are totally false. Seam does not require the use of JBoss Microcontainer. The JBoss Microcontainer is something we suggest as an easy way to test Seam applications at development time, or a way to get EJB3 support in a J2EE 1.4 environment. The microcontainer is NEVER used at runtime in a Java EE 5 environment. Nor does Seam rely on *any* proprietary features of JBoss. If you like, grep the codebase for "org.jboss". You won't find anything. You can deploy a Seam app on any appserver that supports EJB 3.0. All this is easily determined by reading our website, and I'm amazed that Keith is spreading such obviously false claims.
A lot of the issues here boil down to trust.Right, and apparently we simply can't trust Keith Donald on the subject of Seam.
I'll vigorously defend the argument that a Spring-based J2EE architecture incorporates more standards with more consistency than a comparable approach on the JBoss platformThis claim is absurd and laughable.
JBoss is effectively trying to be a Spring clone to some degreeI encourage anyone who is interested to go and download the Seam booking app and look at the code, and look at the concepts in it, and decide for themselves whether Seam is a Spring clone. (It absolutely is not, but that is easy for anyone to discover, so I don't need to argue the point here.)
Re: Spring Framework Has A Competitor Now
Seam does not require JBoss Microcontainer and I should not have given that impression. What I wanted to convey was that Seam is not a standard--it builds on standards, of course, but it ultimately is still a JBoss product tested on JBoss Server.
Spring, of course, is also a product and platform that builds on and integrates standards. Funded largely by Interface21, Spring is tested on a variety of application servers (including JBoss).
To Gavin and those involved with the Seam project: for the inaccuracy I apologize. As a product development lead myself nothing is more frustrating than seeing misinformation or misunderstanding. I should have done my research before making that comment.
Regards,
Keith
Re: Spring Framework Has A Competitor Now
Re: Spring Framework Has A Competitor Now
I have to say that Keith's unfounded attack on Seam appears to validate this blog's assertion that Seam is a valid contender in the light-weight, agile development market. The amount of FUD in his original post borders on paranoid. His second post isn't much better (asserting that JBoss is only testing it on JBoss). All I can say is that competition is a "Good Thing". Negative attacks on your competition usually does the opposite of what you want it to do.