Adam Bien's Weblog

Wednesday Oct 18, 2006

Non Java Programmers, are often the best Java EE developers (Sad But True) :-)

It's classic: after introducing the concepts of transactions, isolation levels, XA-protocols, pessimistic/optimistic locking, eager/lazy loading and messaging, I hear often the following comment from Java / OO-programmers: Java EE is too complex, why not RoR or Servlet-Only?
The funny story here: transactions, XA (1980-90), messaging (started before RPC) etc. have nothing to do with Java EE, are even older than Java SE and come from the "big iron" legacy world. Once I had a non-Java-programmer (CICS/IMS developer) from a bank who was rather bored by my explanation. His comment was: "What you are explaining here is really nothing new. We used exaclty the same concepts in the 70's". Java developers were totally amazed by his comment (every single topic was new for them). After explanation of EJBs and connectors he said: o.k. I have to learn the syntax and the strange interfaces (it was the J2EE 1.3 time),  but it seems to be easy comparing it to CORBA or other communication protocols and distributed components.

It is also my opinion: we have the same constraints for all distributed technologies. So you have to learn the complex (which are complex) principles. After learning it, you have to learn the syntax and philosophy of .NET, Java EE or CORBA. But comparing it to the principles, the technologies are relatively simple to learn. New hypes cause constant movement to new technologies. But: it is not possible to solve the "old days problems" without understanding the principles.
Conclusion (sad but true):

  1. New technologies cannot be really simple, or solve the problem. You have still to decide about your concurrency (or isolation of transactions), locking, caching etc. Ignoring the problem only works in really simple applications, which are irrelevant.
  2. Old school programmers (often non Java-programmers), have a significant advantage over "AJAX" programmers....


[my tweets]  Rss My book: Real World Java EE - Rethinking Best Practices

Kommentare:

Sheesh, what a gross over-simplification. Just as the tip of the iceberg, consider the radical difference between the assumptions regarding the role of the network in Corba, vs., say, RMI.

http://research.sun.com/techrep/1994/abstract-29.html

The concepts were NOT the same in the 70s.

Gesendet von John am October 19, 2006 at 02:49 AM CEST #

why is this surprise, Java's nothing new except old ideas rehashed into the 90s' computing landscape.

Google might have put AJAX on the map but today's AJAX programmers are no better than VB programmers of the 90s.

Gesendet von 69.108.204.176 am October 19, 2006 at 10:50 AM CEST #

Surely any Java programmer with a Computer Science degree should be very familiar with all of the wider concepts mentioned here? If you get programmers with history degrees who learnt Java in a 2 week course because they joined a big consultancy that demanded they did some technical work, then sure, you'll get clueless people. Equally some of your computer science graduates will be heavy on the theory compared to someone who has been programming distributed systems since the 70s, but it seems unfair to assume they'll all be clueless.

Gesendet von Raddedas am October 19, 2006 at 11:17 AM CEST #

John,

yes there are differences between CORBA and RMI. But from the technical point of view, RMI is a simple Java counterpart. Both technologies are built with stubs and skeletons and are a Remote Procedure Call fashion of remote communication.
From my point of view RPC (the old Sun technology), DCOM, CORBA, RMI and JAX-RPC are very similar. If you know the concepts, you will also know the limitations. And the knowledge about limitations is more important in real world, than the knowledge of the Java Syntax.

Gesendet von Adam Bien am October 20, 2006 at 08:33 AM CEST #

69.108.204.176 :-),

exactly. But: AJAX and VB are both o.k for certain use cases. In my opinion it is harder for an AJAX developer to understand EJB 2/3, Connectors, JMS, XA, JTA, than for an old school RPG, PL/1, CICS developers. The experience matters....

Btw. I'm not a host developer, only a Java/EE developer/architect :-)

Gesendet von Adam Bien am October 20, 2006 at 08:36 AM CEST #

Raddedas,

sorry. In my opinion Computer Science degree really does not matter. Only motivation and interests are important in practice. At least in germany, they are students (often university) out there without any knowledge of isolation levels etc.
It is only my observation. I'm also only a Java developer, without "legacy" background (only little C++/C), so I cannot be unfair :-)

I reviewed some "strategic" systems in production, without any proper settings or configuration of Isolation Level, sometimes even transactions. And the (Java) developers simple didn't care. Reason: J2EE was too complex :-)

Gesendet von Adam Bien am October 20, 2006 at 08:40 AM CEST #

Hmmm, to me there is a case of both fundamentals not being taught/emphasized enough and the issue that EJB3 adds more complexity than it needs to.

I have written a piece on the EJB3 Architecture which I my mind complicates ORM more than is required.

www.avaje.org/ejb3.html

In addition I think there needs to generally better documentation to introduce and discuss the issues of Transaction Isolation, Lazy loading and Optimistic Concurrency Checking.

Actually I have written some of that documentation and if you want to give some feedback I'd be grateful. You can find them at...

www.avaje.org/whitepaper.html

Cheers, Rob.

Gesendet von Robin Bygrave am November 13, 2006 at 09:51 AM CET #

I linked my blog with this post.. it says "You Must Read this"

i tottaly agree with you..

Gesendet von felipe am November 29, 2006 at 01:25 AM CET #

Senden Sie einen Kommentar:
  • HTML Syntax: Ausgeschaltet
Interviews/About
My Recent Book
Java One 2009
CommunityOne East N.Y.C
JavaONE 2008 Interview
Search
...the last 150 posts
...the last 10 comments
greenfire.dev.java.net
Links
my.netbeans.org
Visitors
License