Heavy is a Perception


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.

But the intent of the show mirrored some discussions I’ve been having with Michael Neale, Aussie on the JBoss Rules team. Changing your perception is a lot of the game.

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)
  • Security
  • Process Scheduling
  • …etc, etc.

…by default.

Default.

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.

…by default.

Default.

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:

  • Dynamically-typed
  • Ending in “uby” or “roovy”
  • Agile

…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.

Maybe frontend JavaScript developers want to call Service code directly, eliminating the need for a Web Tier in many cases. We can do that. Maybe JRuby kids want to leverage Rails for its strong points, and shuffle off the distributed business logic to EJBs. We can make that easier, too.

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.

S,
ALR

3 comments

  1. Of course, I’m a JBoss guy…but this post was both hilarious and spot on!

  2. Now for us to get the world to agree, Shaun. :)

    S,
    ALR

  3. [...] servers. I’ve a clear history towards promoting JBossAS over something more lightweight[1], and in my opinion any non-trivial application that doesn’t take advantage of a decent [...]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: