XML and comparative religion

Doug’s Buddhist roots are showing. His last couple of posts have been almost koan-like. Dare makes his point less elliptically, which helps to balance the argument out.

I’ve been feeling a strange resonance lately – the sense that there’s a parallel between the technical concepts present in XML and the philosophical concepts of Eastern religion. I’m far from a Buddhist scholar, but the main points of Don and Doug’s talk at TechEd seemed to have a distinctly Eastern overtone to them. Perhaps when people talk about the “Zen of XML”, they’re not completely joking.

Indulge me for a minute, and I’ll try to explain what I mean.

Fundamentalist monotheism (i.e., Western religions as practiced by their various fundamentalist sects) hinges on a single, objective interpretation of Truth. According to them, there is a single concrete vision of Truth that is absolutely and exclusively correct. Belief systems that deviate (however slightly) from the Real Vision are, to put it bluntly, wrong. As a result, differences of opinion as to the true nature of God have been the cause of many wars throughout history. Conversely, from the Eastern perspective, Truth is. Buddha is. There is no single, correct vision of Truth beyond Truth itself – everything else is merely interpretation. All truths are thusly relative to some degree. The concepts of Right and Wrong (as absolute, moralistic ideals) are absent. Some things are of the Buddha-nature and some things are not, but to call those things Right and Wrong respectively is an overstatement. Instead of seeking to define the Buddha-nature (which is what Westerners would try to do), the goal is to become one with it.

That’s great, Steve, but where the hell are you going with this?

In distributed systems, the data they exchange is Truth. Like Western and Eastern religions, systems can approach this truth from one of two perspectives.

Classical distributed object systems were like monotheistic fundamentalists. One system defined the concrete vision of the data that was absolutely and exclusively correct, and then forced that vision of the data on all the other systems that lived around it. Other systems had one of two choices: accept the canonized vision or be excommunicated. Simple as that – there was One True Programming Model and you either used it or got banished into the Pit of Interface Incompatibility. Any attempt to denominationalize by deviating from the One True Model wreaked havoc – I don’t think any actual wars ever broke out, but it certainly did present its share of headaches.

XML-based systems take an Eastern approach. What is Truth to these systems? The data on the wire. What *is* the data on the wire, exactly? It is what it is; no more and no less. The programming model used to manipulate the data is merely one system’s interpretation of Truth, not the Truth itself (the map is not the territory). Thus, the actual programming model that a system uses is immaterial; all that matters is the data itself.  On the wire, programming model does not exist; there is only the Buddha-nature as represented by the system’s shared schema.

The programming model is not the data – the map is not the territory, the menu is not the meal. Don’t confuse a metaphor for a concept with the concept itself.

PS – never whistle while you’re pissing…

#1 Brian Camping on 6.14.2004 at 8:53 PM

Interesting and thought provoking read. Since you once asked a while back...I now blog, therefore I now am. Thanks for jump start :-).