More thoughts on the Sad State of J2EE (Francis Shanahan)
Grails June 16th, 2007
Ok so a number of folks have written comments and emailed me privately based on my post, nay rant regarding J2EE [LINK]. I think some further clarification is warranted lest you get the wrong impression. And no I’m not back-peddling.
My stance is that J2EE as a web-development platform (presentation, middle-tier, database) is bloated. For prototyping, rapid development, agile methodologies you’re better off in my opinion going with something like ASP.NET, Ruby on Rails or Groovy on Grails (I wish they’d named this stuff better, it feels ridiculous to even type the words).
Here’s some of what I would call legitimate gripes:
- Everyone knows the mess that EJBs are/were. Not to say that J2EE is all about EJBs but if you lived through it, EJBs wasted everyone’s time and energy. As an aside, I am a certified IBM EJB developer.
- Java tools are ridiculously expensive. Yes Eclipse is free but everyone builds on eclipse and you end up paying third party vendors to flesh out your IDE.
- Write once deploy anywhere - Doesn’t work so why bother.
- Getting a stack that works. Granted you can easily put together a greenfield stack of tech that works, as Jordan pointed out in my last post [LINK]. But getting more than one technology to work together in the J2EE environment is tricky. E.g. Websphere Application server and say JBoss. Usually what I have found is all is fine until you start introducing stuff into the mix. You need such and such version of WAS with such and such version of Product XXX. I’ve even seen people setup entire containers and make RMI calls just to string products together. Big mess.
- Vendor lock in. Sort of a follow on to 4 but once you start writing java that uses the extensions a particular vendor has made you’re locked in.
- General productivity vs .NET: I just think the IDE of studio is streets ahead of the Java IDEs out there. That’s probably personal preference. I’ve also seen markedly higher productivity from development staff when using .NET vs Java.
I’d like to think I’m impartial and go where the best technology is. On the server I’d maintain Java is the platform to beat. The throughput, security, reliability are all there. .Net has made huge gains in this department and will continue to do so. If I were setting up a company from scratch I would probably pick a .NET stack top to bottom given where .NET is at today. In reality though most places have java on the server and have built software policies around ensuring only J2EE is there, where it belongs so you can’t fight reality.
Certainly .NET has it’s faults. It’s not free, Studio does cost $$$. I think ideas tend to trickle down from the Java world to .NET so there’s a certain amount of “borrowing” that goes on.
You get vendor lock in as well as platform lock in for the most part. I don’t really mind these things though as these are at least openly admitted up front.
As for Groovy and Ruby, I’m still a newbie on these things but they look interesting compared to J2EE development. Unfortunately I think they’re not at the level of ASP.NET yet as far as developer support. I really hope they get there though.
Tags: Grails
About
Leave a Comment