Down with the software engineer! Long live the application builder!

by Kevin Schmidt

So I want to rant a bit about J2EE and discuss how J2EE is similar to VisualBasic. J2EE is a framework while VisualBasic is a programming language. However, J2EE affords the Java developer an environment which allows him or her to not think about things like threading, database access, etc. and focus on the application development task at hand. This on the surface may seem like a good thing. It allows those developers who are less skilled or educated to build enterprise and/or business applications quite quickly, or at least that's the promise. VisualBasic promised a similar thing. You could take people with little or no programming experience and let them point-and-click their way to application-development bliss. Of course you still need to know the syntax of the language, how to debug it, how to think logically, etc., but the learning curve of Visual Basic is a bit easier than that of say C or C++.

I work with an individual who recently made the statement that "everything in Swing is thread safe." This is not correct. This individual, who has supposedly been working the software field for 10+ years, apparently doesn't know the first thing about threading in Java, even though he claims to be a Java and J2EE guru.

This disturbed me to say the least. It is apparent that the proliferation of easy-to-use languages and check-your-brain-at-the-door frameworks are doing a disservice not only to individuals who use them, but the companies who employ these ignorant people. Of course, there are many people out there who are clueful and make use of J2EE and such, and these people probably end up learning how poorly suited J2EE is for doing any sort of high performace application and ditch it altogether. See Better, Faster, Lighter Java for a discussion on this. I can count at least three real-world, i.e. commercially driven, software projects I know of which started out as J2EE projects and eventually were killed due to performace issues, or switched gears and became either J2SE projects or had to be implemented in another language.

But I often wonder how many people who claim to be J2EE experts would know the difference between a nibble and a byte? Or how threading impacts performance on boxes with multiple CPUs. Does this mean that only computer science graduates should write software? No. But I think the cursory introduction that many non-CS types get to programming, software engineering, operating system design, hardware design, and algorithm analysis can make for poor practitioners. It is entirely possible to get this educational background without having a computer science degree. There are many well-written books on these topics. In fact I work with individuals who have non-CS degrees and have mastered most, if not all of these skills.

So, I am going to coin the following phrase, quip or whatever:

"J2EE: the VisualBasic of the Java world"

7 Comments

jwenting
2004-10-05 23:42:22

J2EE != EJB
The people you refer to (and apparently you yourself) seem to confuse EJB with J2EE and think only EJB is J2EE.

EJB is indeed often a poor choice, but they're not the whole of the platform (though sometimes I think even Sun wants us to believe they are).

I've been writing J2EE applications professionally since before the term was coined, starting with Servlet 1.1 and being delighted when JSP 1.0 hit the streets.
I've looked into using EJB several times but always found they're the wrong tool for the job (and I'm not alone in this, though for years I had to fight to get people to understand the why of it).

I'd consider EJB the MFC of Java, not J2EE the VB of Java.

sachaoltmans
2004-10-06 07:15:56

JSP == VB
I think you're right, that EJB is the MFC of Java.

What I usually see is not that people confuse J2EE with EJB, but think that J2EE is nothing more than JSPs.
I mean, you can hardly say that EJBs are easy to use. So maybe the writer of this blog also thinks that J2EE is just JSP.

And if EJB is the MFC of the Java world, then perhaps JSP is the VB of the Java world.

And again, my professional experience is that inexperienced or mediocre programmers are able to modify or even write a JSP, but I've never seen them write an EJB.

kjschmidt
2004-10-06 07:33:51

J2EE != EJB
No, I do know the difference. I think I was trying to make a conceptual point. I think what prompted me to write the rant was the fact that I worked with a team that was responsible for building a UI in Swing. This team created a middleware based on JBoss, DAOs, hibernate, EJBs. etc. which was supposed to feed a multi-user UI with realtime event data. When all was said and done and the system didn't perform anywhere near what the specification called for, the UI team turned around and questioned why anyone would want to see realtime events in a effort to deflect the real reason for the poor performance. Like I said, I am just frustrated.

chase
2004-10-06 08:05:05

Guruage
"In fact I work with individuals who have non-CS degrees and have mastered most, if not all of these skills."

And then there are the CS grads who have mastered none of them.

btw - I think python is more like the new VB.

kjschmidt
2004-10-06 08:11:17

Guruage
Sigh. That is a very true statement about CS grads.

uche
2004-10-06 11:36:04

Guruage
"btw - I think python is more like the new VB."

How do you square that with almost every observer's claim that Python tends to attract the most skilled and experienced of software developers?

Python is a very readable language. VB is a nanny language. Huge difference, but some people might use the word "easy" to characterize both. Perhaps your facile misperception is a result of this?