Mike Desjardins is an Enterprise Java developer who lives in Portland, Maine, U.S.A. His primary focus is on ORM technologies, Database Design, and Web Services, as well as occasional dabbling in web design. Mike is also a proud parent and avid gardener. Mike is a DZone MVB and is not an employee of DZone and has posted 6 posts at DZone. You can read more from them at their website. View Full User Profile

A Reason to Hate Enterprise Java

  • submit to reddit

Today, while going through my morning ritual of scanning my RSS feeds, I came across this little gem.These are the kinds of pictures that a software architect or Java evangelist might get giddy over.  Now imagine a development team that needs to, e.g., expose an API as a RESTful service, or create a web site for end users to view their account, or perhaps act as “glue” between two in-house business systems.  To an upper-level manager, such as a VP of Software Engineering, a picture like this would tell me:

  • This is powerful stuff, and it will support all of my current and future needs.
  • I probably need to pay an outside firm or consultant to explain all of this to my team.

This is undoubtedly the goal of the document.  After all, it’s the upper-level managers who get to make the final call on which technology to use.  However, as a software developer, I don’t want or need an entire “ecosystem” to support my little RESTful service or client self-service web application.  I want the best tool for the job, and that might be a far simpler, lightweight, specialized solution.

Granted, my ideal small solution is somewhere in this mess (sort of - this thing doesn’t even get into frameworks).  My small application probably involves dragging a bunch of other components along to make it all work; a web site won’t work without JSP, which needs a Servlet Container, which probably accesses a database and needs JPA.  Why should I need to care?

I guess my little rant is about a difference in perceived needs.  In my world, many development shops are in need of small, isolated web applications and/or web services that access a database.  There’s a form of security around it, but it’s basically all about getting and/or updating data from a database somewhere, either as a pretty web site or in some data stream (XML, JSON, CSV, whatever) to be picked up by another service and consumed.  Java wants to be all things to all people, from end-user applications on mobile devices to enterprise service busses to web pages and web services.  I’m finding that Java’s myriad “solutions” are less and less relevant to me.

The only thing that binds these disparate products together is the language itself.  Java-the-language is okay, I guess, but it’s not a compelling enough reason to choose this “Technology Concept Map.”  Conceptually, a mobile application is a very different thing than a web application.  Knowing the language doesn’t make my skills transferable if my company decides to get out of the RESTful financial services business, and start making dating applications for mobile phones.  So if my VP of Software Engineering is choosing Java based on the probability that it will meet all of our future needs, then she or he is choosing it for the wrong reasons.

I know that I’m showing up late to the Java-bashing fest, and I’m far from the first person to raise these gripes.  I’m firmly invested, professionally, in Java technology now - I have no intentions of abandoning it any time soon.  But I’m really looking forward to learning some alternatives for building web services and applications.

From http://mikedesjardins.us/

Published at DZone with permission of Mike Desjardins, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)


Jeroen Wenting replied on Thu, 2009/02/19 - 4:10am

Ah, another person who doesn't understand that he doesn't have to use the entire stack in every project and uses that ignorance as a reason to 'hate Java'.
Is there no originality let in the world? The Java haters are starting to sound surprisingly like the Bush haters, immature, poorly informed, bigotous, and spouting the same nonsense over and over again just to be seen as "being part of the group".

Steven Baker replied on Thu, 2009/02/19 - 4:18am

why are you even considering java if all you want to do is basic crud apps?

Thomas Mueller replied on Thu, 2009/02/19 - 4:33am

> Bush haters

I hope nobody response to this flamebait... Oh no I did... :-)

> he doesn't have to use the entire stack

I agree.

Nicolas Labrot replied on Thu, 2009/02/19 - 5:45am

You can do the same exercice with Windows or Linux.

It doesn't mean that you must know all the stack....


John O'Hanley replied on Thu, 2009/02/19 - 6:40am

The WEB4J tool (web4j.com) was made to address the problem you speak of. It's purported niche is building a simple HTML front end to a relational db. You might find it useful.

 As well, its author is going to open source it in a few days....

Jason Kilgrow replied on Thu, 2009/02/19 - 10:11am

Java these days is becoming less and less of a language and more of a platform. Especially with glassfish v3 coming out soon. Via osgi you will probably stop writing web applications and start writing more web plug-in tools that will function the same as a web app but will be so platform agnostic that you won't even know (or care) that your application is running on a jvm.

Mark Unknown replied on Thu, 2009/02/19 - 9:00pm

jkilgrow, do you have any info on this? My glassfish + osgi googling comes up pretty empty on this subject.

Riyad Kalla replied on Fri, 2009/02/20 - 12:34am in response to: Jason Kilgrow

Exactly right; the insanity that is Java is proof that it is no longer a language... it's become a platform. Like Mike said, I'd say that Java isn't *trying* to be everything to everyone... it *is* everything to everyone. It's a mobile platform, a tool platform an OS platform (JNode), a computing platform and even a language platform for other languages on the VM... Java jumped the shark and kept going. If you are a Java fanatic, the landscape is constantly interesting with new innovations and advancements that are fun to learn about. If you are a contractor trying to solve a problem it is absolutely daunting and I could see the appeal of a more focused ego-system like Rails... the solutions to your problems likely lie in multiple camps in multiple forms... PHP, Rails, Java, Scala... I'm sure you could get each one to give you the result you want.

Faisal Aziz replied on Fri, 2009/02/20 - 5:27am

Very old rant. May be 6-7 years old.

Rodrigo Asensio replied on Tue, 2009/02/24 - 8:50am in response to: Steven Baker

With a framework I do CRUDs with UI, security and Backend done in 10 minutes or less. The language doesn't matter, the framework matters.

Andy Leung replied on Wed, 2009/02/25 - 8:18am in response to: Jason Kilgrow

To jkilgrow, Java itself is still a language but some products created by Java are platforms for development.

john green green replied on Fri, 2009/10/23 - 2:07am

a mobile application is a very different thing than a web application. Knowing the language doesn’t make my skills transferable if my company decides to get out of the RESTful financial services business, nike shoes newand start making dating applications for mobile phones. So if my VP of Software Engineering is choosing Java based on the probability that it will meet all of our future needs, then she or he is choosing it for the wrong reasons.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.