Arise, POJOs!
We're one whole month into this new year now, and I'm continuing to see an encouraging trend back toward simplicity. Perhaps it wasn't just another hopeful resolution with a 30-day shelf life. It started last year when a downtrodden technology sought to bring some reality to a trough brimming with beloved three-letter acronyms (TLAs). But to be welcomed into that world of hype, it too had to conform to the likeness of others before it. From the ashes of the dot-com pyre rose the POJO.
(No, POJO isn't a reference to the unfortunate team member saddled with maintaining all the Java code in JSP scriptlets. It's a pity that nobody can remember now if he started out being a web designer or a server-side geek. Truth is, it's all the same to him now. But I digress.)
POJO is an acryonym for Plain 'Ol Java Object. It's a rather old-school concept, I realize. When gazing upon the totem pole of recent technology, you'll find it at the bottom. You can't directly access one across the network, replicate its state across a cluster, or expect it to save itself to a database. And until recently, a POJO wasn't even given the respect inherent in being called by an acronym. Any technology worth its salt these days must have an acronym, right?
POJOs are perfectly happy going about their humble duties in J2SE squalor. They prefer not to be bothered by those megalomaniacs living large in the J2EE world. Yet often times they get locked up inside some pompous component that proceeds to drag them around hither and yon. Their cry for freedom is unmistakable. The last time I heard one writhing in pain it was a captive of a session bean. I wanted to set it free, if only for my own selfish desire to easily test it. Yet it was difficult to discern where the EJB plumbing ended and the POJO began. Indeed, there was no way to get at it without first passing through the gates of its captor. I did eventually manage to unshackle it, and it went on to do great things. How it became tangled up with the session bean I'll never know. I do know that it wanted to be tested, if only for its own selfish desire to live in isolation from the beginning.
I think this will finally be the year when POJOs rise up against the oppression of their J2EE tyrants. The world will come to realize that J2EE is nothing more than a layering technology. Servlets, session beans, and message consumers alike should simply decorate POJOs. Indeed, these J2EE components are merely ambassadors rolling out red carpets for other technologies to approach the POJO. And yet unadorned by these decorations, a POJO has value in its own right as the keeper of business logic.
Any day now I'm expecting my first issue of POJO Developer's Journal to show up on the doorstep. It will, of course, contain advertisements for the upcoming POJO World conference. There you'll be able to buy fresh copies of Professional POJOs. If it's an O'Reilly title, I expect the cover animal to be something familiar, like a brown cow. It's all good.