guest editorial by Don Box, Tue, Jun 25, 2002
Chris, I just read your “Object vs. XML” post on the spout and I’d be
pleased if you would allow me to respond with my own personal spoutlet.
Here goes:
For much of the 1990′s, I spent a lot of time writing COM code in
C++. The combination of C++’s static type system + COM’s dynamic type
system was a very powerful combination that I am proud to have been
involved with, even though my contributions to COM were from afar as a
non-Microsoftie.
In March of 1998, I had the pleasure of working on the initial SOAP
protocol with Microsoft and Dave. That experience was a turning point
for me, as it forced me to acknowledge type systems that were not part
of the classic OO family that I had come to know as the “one true way.”
Unlike COM or Java, XML tends to attract developers of every stripe,
each of which has a wildly different sense of esthetics with respect to
language design, data vs. processing model, structural vs. nominal
typing, functional vs. declarative vs. imperative styles, etc.
Because XML’s raison d’etre is interop, XML needs to be
neutral with respect to these choices, otherwise, the barrier to entry
becomes too excessive for some communities to participate. The current
pushback against XML Schemas is a great example of this effect.
XML Schema imposes a type system over XML Infosets that is very
similar to the OO type systems you are familiar with. This makes XML
Schemas well-suited for importing directly into Java or C# programs.
Unfortunately, the XML Schema type system has features that don’t
make sense if your world doesn’t revolve around named user-defined types
(e.g., several script languages, SQL, etc.). For that reason, some
members of the XML community has been lobbying for something with a
looser type model than XML Schemas. Had the XML Schema working group
made it clearer how to do this sort of thing with XML Schemas, I believe
the time for adoption would be that much shorter.
Getting back to your original post, I find your characterization of
my colleagues and I as “so steeped in the new world that they forget
where they came from” a bit misleading.
As an XML guy, I try not to focus too much on where I came
from. Rather, I try to bend over backwards to be respectful of where
other people came from.
I don’t want the guy writing ML code in Dayton, Ohio to shove his
world view down my throat.
I’m trying hard to reciprocate by keeping my OO/C++/COM sensibilities
in perspective.
XML is about inclusion.
It’s the ultimate Rorschach test.
We all make it into what we need it to be.
That’s the “secret sauce” that makes XML what it is.