Sunday, April 02, 2006

Spring - when standards suit everyone but the people who use them

I have been working with Spring for well over a year now and I continue to be amazed.

Yes, like everyone else I am delighted at how well Rod and the folks have really captured a bunch of server side best practices and repackaged them into tight, easy to use and often simply beautiful services. And like everyone else, I am firmly strapped into the Inversion of Control a.k.a Dependency Injection bandwagon.

But. That is not what I am amazed at. Where the H-E-Double Hockey Sticks is J2EE? Anyone? Anyone?

While organizations like Spring are doing leprechaun dances and popping out great libraries like pennies from heaven, here is a huge gathering of the best and brightest server side minds in the Orion Arm and what are they doing with J2EE? Writing ever larger standards, stuck in furious and vicious infighting, bringing all useful progress to a halt. For example here is how the whole CMP war went:

  • EJB 1 Team: we no need no steenkin CMP!
  • EJB1.1 Team: oops... ok you can have your steenkin CMP if you just gotta
  • EJB 2 Team: ok we know that CMP 1.1 sucked... THIS time we got it
  • EJB 3 Team (act 1): ok we know that CMP 2 sucked... THIS time we got it
  • EJB 3 Team (act 2): ok CMP 3 will be JDO-like... THIS time we got it
  • EJB 3 Team (act 3): ok CMP 3 will be O/R-like... THIS time we got it
And container managed persistence is only one aspect of a whole suite of server side features that are either bulky and hard to get at in J2EE, or simply non existent. But man can you set up a hell of a deployment descriptor! (Aside: ever met a J2EE EJB deployer that WASN'T the guy that programmed it?)

So what happened? Some will tell you that vendors with an eye on excluding competition hijacked the J2ee standard and forced it into such complexity that only the biggest vendors could hope to comply. Others felt that as a world-wide standard solution styles that varied from North America to Europe made a single universal standard hopeless.

What ever the problem, one thing is clear. J2EE is rapidly being left behind, as new techniques and new technologies surge past them, making the problems J2EE used to solve trivial. While the Goliaths of the industry lumber and lurch their way through hundreds of pages of standards documents, bright, nimble and creative Davids skip around the server and spew startlingly simple code that is truely useful. And most of it is FREE.

Amazing. Like I told ya.

2 comments:

Anonymous said...
This comment has been removed by a blog administrator.
Anonymous said...

Spring rocks! It is light, tight and flexible. Down with EJB!!!