Elliotte Harold is absolutely right when he suggests that people should leave Java alone. New technologies compete on features; mature technologies compete on deployment.
Let’s value our mature, middle-aged technologies for what they are, rather than destroying their dignity by pumping them full of features botox and slashing them up with plastic-surgery keyword changes to try to trick people into thinking they’re young and immature.
With some minor lapses, the W3C has done well avoiding the temptation to improve XML to death. XML is still, in every way that matters, the same as it was when the initial recommendation came out nine years ago — warts and all — and that’s why it’s so widely used. Sun should pay very close attention, since Java’s around the same age, and is deployed in many of the same places. The people who actually decide to use Java and XML to run organizations and do real work (not bloggers, but architects, project managers and even sometimes CTOs) appreciate them for precisely that stability and dependability.
I have a different perspective from the periphery of the group wrestling with similar issues in the evolution of C#. As the bard put it, “he not busy bein’ born is busy dyin'”. The features being added to C#3 are not attempts to add trendy bits of immaturity but rather well-proven concepts from LISP, SQL, Haskell, and elsewhere.
I can see the argument for letting Java be Java and Groovy, JPython/JRuby, “JHaskell” etc. do their thing in peaceful co-existence on top of the JVM. People can then build composite applications using them all together. That sounds a lot better to geeks than civilians, I think. One data point: We sortof do that in .NET land in that Visual Basic 9 has much more native XML support than C# 3. I originally thought “OK, use the right tool for the job, it all compiles to the same stuff and runs in the same environment.” The almost universal feedback I hear, however, is “Wow, that XML support in VB is WAY COOL, when are you going to have it in C#”. For better or worse, the non-geeks I interact with tend want to do it all within their favorite language. A surgeon might see botox and implants, but the customers seem to be happily coming back for more.
Speaking of the lessons one can learn at the junction of markup and programming languages, watching the Java world agonize over properties and closures doesn’t restore my faith in Design By Committee. C# has a strong central design team that makes decisions, implements them, and takes responsibility for the consequences. Java seems paralyzed by the community process, just as XML’s stasis — oops sorry, “stability” — is ensured by the fact that in such a diverse community, one person’s useless bloat is another’s core feature.
Back to the main point: The trouble for XML is that the folks hindered by XML’s various issues aren’t saying “oh well, stability and dependability and deployment make up for a lack of usability, composability, performance, etc.”; instead they’re off inventing JSON and binary XML, reviving the non-XML flavor of HTML, and so on. Sure, these are loosely tied together by the Infoset/browser DOM, with XML 1.0 as a least common denominator serialization option, but that leaves the whole niche wide open for invasion by an alternative that can synthesize more ideas to meet a wide range of needs in a smaller/cleaner/faster way. There’s no “XML#” on the horizon now, but IMHO that’s only a matter of time on the current course.
Maybe it would be a Good Thing for our knowledge of how socio-technological processes work to run an experiment and freeze Java while C# continues to evolve. We’ll see which wins, and learn from the exercise. All I can say is that if I were a Java stakeholder these days, I wouldn’t want to bet that stability will beat evolution. I am an XML stakeholder, and I wish that we as a community were spending more time bein’ born, otherwise XML’s gonna be dyin’ before its time.
Pingback: Pragmatic Dictator » Blog Archive » Why Is Everything a Language Extension?
Pingback: Pragmatic Dictator » Blog Archive » Why Is Everything a Language Extension?
Pingback: JavaSPEKTRUM Blogosphäre » Blog Archiv » Blogosphäre (aus JavaSPEKTRUM 02/07)