The XML hype appears to have reached a peak even beyond the dizzy heights that Java reached a few years ago. Java was the best thing since sliced bread, but XML is going to toast it and deliver it on a breakfast tray.
I tend to let these mega-paradigm-shifting events slide by. When I cast my cynical eye over the next big thing I almost always find three old things branded with a new name. These newfangled technologies usually becomes useful and important because the time is finally right for one of those old ideas to really take off.
With Java you get the best of C++, without some of the worst, a virtual machine interface for portability, and built in networking for distributed applications. Same old technology, but the web made the time right.
To me XML appears to be a simple tagged text format, based on SGML, with a mechanism for declaring and defining the syntax of the text. Schema standardisation efforts have been going on for years, with most progress being achieved within industry consortiums, like EDI for example.
So, if this is just some old technology, what's right about the times that will validate it? It's not the web itself, or the explosion of business to consumer interaction that is driving it, but business to business commerce on the web. In order to compete companies, like software systems, will have to define their interfaces and their object state representations so that they can inter-operate with each other over the internet. XML is the language, or language definition language, in which this will be written.
The network effect appears to have kicked in, making the single most important reason why XML is important, is because everyone thinks it's important. Which is why it's only going to become more important.
I'd be very interested in hearing the opinions of other people on this topic. The press and analyst reports I've read about XML have bordered on mysticism. I found a refreshingly sane posting on the Infoworld website, which I've copied below.
Topic: XML doesn't do what you think it does.
Posted by: lemberg
Date posted: Sun, 19 Sep 1999
People often get confused as to what XML is. This confusion is legitimate, because all the major players are deliberately portraying XML as something other then what it in reality is.
XML is two things: a mechanism for defining a grammar, and an agreed upon restriction of the space of possible grammars. By the former I mean you can define your own markup tags, and by the latter I mean that they have to look like markup tags. That's all.
Now for what it isn't.
Support for XML does not by itself mean anything. XML does not make systems more open, or cross platform, or more reliable, or make their messages human friendly. Which paradoxically is why companies were so quick to claim they support it, because they could incorporate XML with no risk of real change.
Imagine this scenario... MS defines an XML grammar of one tag <ACTIVEX></ACTIVEX>, and the text inside is defined as a uuencoded ActiveX component. This is 100% completely rock solid XML, and is completely published for what that is worth. Want to make Excel spreadsheets be XML compliant? Let's add a new tag: <OLD_ EXCEL_ FORMAT_ WRAPPED_ IN_ A_ TAG>.
That's the fundamental flaw in XML; it does not force complete exposure. To do that it would need to go a massive step further and provide a mechanism for defining the meaning of the data, not just the syntax of the data. Without that, saying that you support XML is like saying you support ASCII, it gives people a warm fuzzy feeling but it doesn't have any real world impact.
XML is not by itself revolutionary, or even evolutionary. Text based formats have been around forever. Rather it is the concepts that drove the definition of XML that are revolutionary; the ideas that interfaces between systems should always be exposed. Unfortunately XML fails to accomplish this for the reasons mentioned above, leaving the door wide open for companies to adopt the standard without the reasons for doing so.
P.S. EJB is in no way in competition with XML; they don't share the same space at all. EJB is a component model; similar to the continually hyped but not actually ready COM+. EJB doesn't specify the format of the content of the messages that get passed around between the components. That could be XML as much as anything.