Wild hair up my….

Two posts in one day, oh you lucky readers.  This one is really more of a rant on Java Enterprise.  I think I’ve said this before but here it is again: JAVA ENTERPISE/J2EE IS NOT FOR BEGINNERS.  It isn’t even for beginning programmers.  The complexity of the Java Enterprise software suite is absolutely mind-boggling.

I’ve just started as a brand-spanking new developer at my employer and I was blown away by how complex our application was.  I thought I understood MVC frameworks and how Java Enterprise interacted with them but I didn’t.  As a quick sample here are three design patterns that we use:

  1. Struts where form actions from the .jsp pages are tied to the java Command classes using an XML page.  The data from the .jsp page populates a Value Object (VO).
  2. Then the Command class calls a Delegate which calls a Session Bean which calls a Business Object (BO).  The business logic is mostly located in the BO but some of it is sprinkled into the Session Bean.  Once the BO gets through with validating the data from the VO.
  3. The BO then calls the DAO to persist the data to our database

I’m seriously not trying to make this sound complex, that is as easy as I can write it.  This is my favorite: Command -> Delegate -> Session Bean -> BO -> DAO.  5 classes!

Please understand; I’m not bashing our setup.  I’ve been in the work force long enough to know that when you encounter, what appears to be, overly complicated processes/designs there were very good reasons and a bunch of really smart people behind the design and implementation. And just like the old mainframe world, due to the cost of changing, many of us new programmers are going to have to learn the existing code so we can remain gainfully employed

The amazing thing is how early in the evolution of software we really are. It’s encouraging to see guys like Adam Bien writing really great posts about how to use EJB 3.0 and Java5/6 to greatly simplify your code.  Java Enterprise is not that far removed from Cobol, which is not that far removed from punch card stacks.  It feels like quantum leaps because each one is so much better than it’s predecessor.

We are still mostly at the mercy of the computer’s native tongue when it comes to writing software.  The next twenty years will be very exciting as new languages and hardware are created so that we can get the computer to start understanding our language for a change.

public class StoreFormData {

Take first name, last name, and address;

Store them in a place where I can retrieve them later;

Please make sure the zip code, city, and state are valid with each other;

And one more thing, please make sure it is a valid phone number;

And if anybody else needs this data while I’m using it, don’t let them have it until I’m done;

Thanks

}

That’s what user friendly software looks like 🙂

Advertisements

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