November 29, 2003

Geronimo demo

In the closing session at ApacheCon, there was a demo of the Geronimo project. They showed some web pages of a fictitious Pet Store web site. I didn't get it at all. The folks giving the demo made no attempt to explain what Geronimo was, or why thse pet store pages should in any way be interesting or impressive.

Finally, this evening, I understood why it was impressive.

What amazes me is the attitude that these folks seem to have. It's as though they assume that the entire world understands what they are doing, and any attempt to explain it is below their dignity.

So, for those of you who still don't understand, here's the basics.

J2EE is apparently a specification (or, perhaps, an API) for building multi-user Java server applications. There are multiple implementations of J2EE engines. Jboss is one of them. Geronimo is another.

The Pet Store application is a standard J2EE proof application. ie, if the Pet Store runs, then you have implemented J2EE correctly. It's like a test suite that verifies function.

So, when they showed the Pet Store pages, this proved that their J2EE implementation was correct, and worked.

Now, why they could not take the 3 minutes to explain this to all of us is rather boggling to me, but seems to be pretty standard across the Java community. The Java folks, as a group, seem to assume that all the rest of the world has alphabet soup for every meal just like they do, and so we all know what J2EE, WSDP, JAX-RPC, and so on, all mean. Either that, or they consider folks who *don't* understand these things to be unworthy of dignifying with notice. I'm unable to come up with a third explanation, and would welcome a response from a "Java person" who could shed some light on this for me.

It's increasingly clear that my difficulty in understanding what all these Java projects do, is based on the fact that they are all 18 levels deep in abstraction, and it's assumed that you already understand the first 17 layers.

However, I'm trying very hard to be open minded. I really want to undersatnd what every one of the Apache projects is. And if my quest leads to some better (more world-friendly) explanations of what the projects do, that would be great, too.

I have a simple benchmark for these sorts of things. Can I explain it to my mother? Now, understand, my mother is a *very* intelligent person. But she is not a programmer, not a techie, and has not been exposed to the jargon that we steep ourselves in every day. So if I can explain these things to my mother, that means that I'm using regular english, and I'm probably going to be understandable to most beginners in that particular technology.

Posted by rbowen at November 29, 2003 07:58 PM | TrackBack

By the way, this discussion originated on IRC, as do many of my deep thoughts. I thought I'd also share a snip of the conversation. Names changed to protect the guilty.

[One] The Java people just *assume* that the whole world knows what the hell they are talking about.
[One] It's rather like my attitude to remarks like "It's a [whatever] thing. You wouldn't understand."
[Two] Personally, I live in fear of being misunderstood. I find a lot of my life is spent trying to make non-techies understand stuff and why it's cool.
[Three] well, apparently you're either in the know, or they don't really care about you
[One] As though being incomprehensible is a GOOD thing.

Posted by: DrBacchus on November 29, 2003 08:25 PM

Well, they've proved that it basically works, not that they've completely implemented J2EE. IIRC there's a huge compatability test suite they have to pass before they can really claim to have done that.

And yeah, I do agree that J2EE people (not necessarily 'java people', but 'enterprise java people') tend to hide behind a huge number of specifications. Most of the specifications seem, as far as I can tell, to be about reasonably understandable stuff, but there are just so damn many of them, and the names rarely seem to point directly to what exactly they do. If you don't know what all these acronyms mean, you obviously aren't cool enough to be part of the club.

Of course, I imagine the rest of us are all guilty of this to some extent, but in the J2EE world it just seems way more common than in most other worlds.

Posted by: garrett on November 29, 2003 10:49 PM

This problem may be *worse* in the Java community, but it exists in any tech community of significant size. For example, if you were a Java programmer walking into a talk about Template Toolkit, and the speaker was muttering DBI this, DBD that, and hashref the other thing, would it make much sense to you?

I think the difference is pronounced because the jargon barrier between the Java/J2EE world and anything else is pretty huge. Most likely, the speaker thought the target audience was probably "people like us, not the Apache community at large". If I were that speaker, and my expectation was for an audience of experienced J2EE hackers, I wouldn't want to spend 10 minutes of a brief presentation beginning going over what should be basic material. Whether or not that is an appropriate or valid expectation is a topic for another discussion...

The same kinds of things happen in Perl at OSCon and YAPC, but (a) its less severe (because there aren't 18 levels of abstraction), (b) we're less likely to notice, and (c) we're generally not reporting on the status of an implementation of a well-known spec, but on new work (and thus more likely to spend more time explaining the problem and the problem space).

Posted by: ziggy on November 30, 2003 02:44 PM

Actually pet store running is more like Hello world on crack. While it is impressive that they got it running, it doesn't mean anything with regards to the correctness of their implementation or its production readiness. Its like if wrote my own PERL and got CPAN installed and running... Yes thats impressive, but so what -- why should you use my PERL implementation and how assured can you be that say my threading implementation works? But Pet Store is a fictitious petshop so its not quite as impressive as if I got CPAN working. The reason they might assume (though I wouldn't unless it was a Java talk...I assumed people attending the POI talk knew what Excel and Java were of course) you knew about the Pet Store is that Microsoft used it to beat JAva over the head by porting it to .NET and making it faster. Now the details of HOW they ported it to .NET determined why it was faster. And in truth its pretty irrelevant whether .NET or Java are faster and they're probably pretty on par. So bottom line, Pet store...nice demo. Find petstore here:

Posted by: Andy on December 6, 2003 05:17 PM
Post a comment