Every so often I read something that makes me scratch my head and wonder. Most recently this phenomenon occurred when I read an editorial concerning Java and XML in a Web development magazine. The author wrote that he thought the concept of XML was easy to understand in terms of its usefulness, while he was puzzled over the reason for Enterprise JavaBeans. I sat back and said to myself, Is it me, or do people who get into programming by designing Web sites always get it backwards? Not to malign the author, who did a good job of explaining both technologies, but I've been working with EJB for a year, and it seems like a pretty clear concept to me. What I can't seem to get is the importance of XML.
As I understand it, XML is a language used to provide meta data as well as data information about the structure and content of data in a format that any XML-aware application can interpret meaningfully, in addition to the data itself. For example, someone might write a definition of a recipe (the meta data, known as Data Type Definition or DTD), and then other cooks could publish their recipes using that definition in such a way that all pages or programs written to work with one person's recipes could work with another person's recipes.
I get this. I can see where this can make the building of Web applications easier, although how much easier I'm not sure. With XML, we'll probably be able to add data type checking to pages, and do some other operations that we couldn't do on the pure content of HTML.
What I don't see is how much this buys the industry. First of all, in order for content to be useful to more than just a single company, a standard DTD needs to be created. There are bodies out there in just about every major industry defining these data types. But what if your needs require something different from the standard? How do you reconcile your DTD with theirs? It can be done, but why?
Second, I don't see how much use this will be in programming; about all I can see is field binding and some additional database features. Nice, but why is XML the next killer app? It's just a language like HTML, which was pretty useless in and of itself until the graphic browsers were invented. The browser, the interpreter or user of HTML, was really the killer app.
Probably the big use for XML will be in e-commerce. This is a likely spot, because e-commerce is all about the exchange of structured information, e.g., invoices, transactions, registrations and things like that. And it doesn't seem like a bad way to do things. By standardizing the language for describing the data, it makes it easier for disparate applications, or even disparate companies, to communicate.
I see XML as an enabler for future technology in the same way that the mouse was an enabler. The mouse became a standard input device for just about every computer. XML stands positioned to do the same for data on every computer. But the real killer apps are the programs that will use XML. I don't see XML as changing the way I program, or the way you type in data on the screen.
Now as for EJB, I can see the purpose for that. But then, I got into Web development from the programming side. So maybe I've got it backwards. Let me know.
About the Author
Sean Rhody is the editor-in-chief of Java Developer's Journal. He is also a senior consultant with Computer Sciences Corporation, where he specializes in application architecture particularly distributed systems. He can be reached by e-mail at [email protected]