This year, the Java programming language is 20 years old. To mark the occasion, Michael Stal, editor of JavaSPEKTRUM, decided to publish a few anecdotes that we, the members of the content advisory board, would contribute. When I thought about what to write the hype around this year's WWDC was building up, reminding me of the following story.
It is May 2000. A few colleagues of mine and I sit in an overcrowded room at Apple's World Wide Developer Conference (WWDC), looking forward to session 407, to be presented by Rory Lydon. We're here because at our company we work with Apple's WebObjects application server, one of the very first application servers. Originally written by NeXT in Objective-C to be used with Objective-C it moved to Apple as part of the NeXT acquisition in late 1996 and was made Java compatible.
Rory is going to tell us what is going on in one part of Java land and his session has the title “WebObjects: EJB – Making the Best of a Bad Thing”. After an introduction he continues with a description of core parts of the EJB specification, and many in the audience find hard to believe what they are hearing. Rory quotes from the specification, compares with the elegant solutions in WebObjects that have matured over years. The listeners frown, worrying how their applications could be implemented with this EJB technology. The specification itself is the target and Rory mercilessly points out gaps and weaknesses. After further quoted passages from the specification the mood in the room brightens and, arriving at bean and container managed persistence, the first laughs can be heard. “This will never work in this form”, many seem to think.
A few years later it's obvious that the audience had it right. The EJB specification turns out to be one of the weaker ones of the Java platform, and after an initial period of acceptance in the market many project teams switch to alternative technologies such as Spring, Hibernate, and SOAP.
For me this story highlights something different though, and that is the strength of the Java community. Key technologies aren't sacrosanct. Standards aren't everything. Practitioners find pragmatic solutions and these reach, as open source software, a wide audience. Good standards survive, for less good ones replacements are found. That way, we're still writing modern Java applications today. WebObjects isn't quite as hot any more.
Postscript: I must admit that I cheated. The photo accompanying this post is a photo I took at WWDC 1999. For some reason I have no photos from the one in 2000; maybe because I was shooting with an analogue SLR at the time.