While putzing around the apartment tonight I stumbled across my girlfriend watching the premiere of a new Lifetime Original Series, “How To Look Good Naked“. My initial excitement quickly throttled back to reality when I discovered that my visions of skin on parade were replaced with the insufferable Carson Kressley doing some version of “Queer Eye for the Insecure Girl”. I could blame false advertising, but it’s my own fault for expecting greatness from Lifetime while simultaneously possessing a Y chromosome.
Now, I’ll never, ever argue that marketing or a pretty face will make up for a crap product, but lately I’ve been ramped up over the public view that JEE, and JBoss AS in particular, are “Heavy”. And in context, this is somehow bad.
So it’s time to dispel some of that by embracing the reality of what “Heavy” means.
In the case of JBoss AS, it means:
- Resource Pooling (Threads, Objects, Database Connections, etc)
- Transaction Management
- Conversational Context (Application Sessions)
- Pass-by-Reference Semantics (Avoiding Serialization cost and Network Latency)
- Process Scheduling
- …etc, etc.
Love it. And love even further that the above is implemented to open specification (JPA, JCA, EJB, JTA), minimizing your vendor lock-in.
I21 advocates will proclaim Spring as more relevant than the Second Coming because it DOESN’T have any of that.
See, the beauty of Spring is that it’s merely an environment into which other modules may be plugged. Light as a feather in space. Starts up before you hit “enter”, scales to the moon and back. And is extensible by adding implementations of whichever components you need.
Dirty little secret about JBoss AS: It also does nothing on its own.
The JBoss Microkernel has, for years, simply been a deployment mechanism. And today, I started it in 3 seconds in minimal configuration. If I want to add features, I drop ’em into a folder.
Sounds Springy to me.
For a long time, I’ve hated everything:
- Ending in “uby” or “roovy”
…because they just don’t address Enterprise Concerns, and trade the long- for the short-term, good practice for easy-to-learn.
But that era’s got to come to an end. Development, and open-source in particular, is about choice. And we’ve got lots of great stuff in the JEE space to offer to languages and methodologies of all walks. It’s time to reach out and integrate.
So here’s my concession: EJB is powerful, but I’m going to recognize that not everyone has the desire to invest the time to learn its complex underpinnings, even if the 3.0 Specification made the semantics dead simple.
So Heavy can be really, really good.
Except when you were hoping for lite porn, and instead got some chick crying in front of a three-way mirror.