I have read a couple of books recently that, together, have triggered a
chain of thoughts in my head. On the face, neither book has anything to
do with XML; however, given that I am fatally inclined to gravitate
thought processes towards XML, my arrival at some conclusions about XML
as a result of this bout of reading is no great surprise.
Let us start with the books, both of which, by sheer coincidence, are
authored by men named Johnson. The first book, "Strange Beauty" by
George Johnson, is a biography of Nobel Prize winning physicist Murray
Gell-man. The book itself concerns Gell-man's groundbreaking work in
nuclear physics, but it ended by touching on Gell-Mans fascination with
Complexity as a science and his involvement with the Santa Fe Institute
where Complexity Science is a strong focus.
The second book, "Emergence: The Connected Lives of Ants, Brains,
Cities, and Software" by Steven Johnson, is a tour de force touching on
Complexity Science from a number of different angles including swarm
intelligence in Ant Colonies and the complex structures of human cities.
The relationship between simplicity and complexity in the physical
world is endlessly fascinating, but the abstract world of XML provides
plenty of working material for complexity analysis as well. Take SGML
for example (the technology from whence XML came). Famously complicated
and understood in its entirety by a mere subset of humanity small
enough to fit into a Volkswagen Beetle.
By 1986 -- the year SGML became an ISO standard -- most of the theory
behind generalized markup is done and dusted. Yet, for close to a
decade, nothing much happens. SGML causes some rumblings in niche
sectors such as Defense and Legal Publishing but is unknown in the
world at large. The years pass, the Web happens, and the tut-tut noises
from the SGML camp can be heard above the noise of their Volkswagen
Beetle. "HTML? Too simple. It will never fly". "HTTP 404? You are
kidding me, right?"
Then it happens. SGML's key benefit -- the generalized markup side --
lights up the Web with the luminance of ten thousand mental light bulbs
going on. A swarm develops around SGML, the fat and excess is
surgically removed and a leaner SGML is hauled away to be pampered and
venerated by the world at large. Simplified Generalized Markup emerges
from the complexity and is dubbed as XML.
XML's evolution from SGML raises some interesting questions. Firstly,
could XML have happened without SGML? Secondly, is XML accidentally a
lot simpler than SGML?
Let me answer the second question first. No, it is not an accident that
XML is a lot simpler than SGML. Simple, limited software technologies
win out over more complex, powerful software technologies all over the
map. This is just a fundamental rule of the universe -- live with it.
As to the first question, I believe that XML could not have happened
without SGML. If not for the groundwork laid by the SGML work, the map
of the territory that it created, then XML would have contained a lot
more mistakes. This seems to reference another fundamental rule of the
universe that can be stated thus: Complexity is a necessary but not
sufficient pre-cursor for the emergence of simplicity.
Three other examples of this law apart from SGML/XML spring to mind:
C++ to Java, ISO Seven Layered Model to TCP/IP, and X.500 to LDAP.
Interestingly, the metamorphosis from complex, niche standards to
simple, pervasive standards seems to take about a decade or so. Perhaps
the greatest progress in standards setting we could make would be
reducing this incubation period.
I have a feeling that Dr. Douglas C. Engelbart's bootstrap theories for
Exponential Improvement will play a part in it
(http://www.bootstrap.org/colloquium/session_09/session_09_carlson.html)
but I guess I will need to read a biography of Engelbart to relate
this to XML standards.
So much to read, so little time.