Hi Folks, Decisions: think of the millions of decisions you have taken in your life to arrive
at this place at this time reading these words. Most of those decisions were made without any conscious, deliberate thought.
Decisions have consequences. Humans are not good at identifying all their decisions, let alone identifying their consequences. Decisions create dependencies:
changing a decision here may make it necessary to make changes there.
The XML working group made a decision in 1998 to create XML without an underlying data model. That decision has had many consequences: XPath defined their own
data model, XLink defined their own data model, DOM defined their own data model, and countless other consequences. And interestingly, it has resulted in us discussing their decision 18 years later.
What would our world be like today if the XML working group had made a different decision, to create XML with an underlying data model (not merely “bits on a
wire”)? What would our world be like today if namespaces had not been created? Would JSON have arisen? Would XML occupy a broader niche? When structuring data we make lots of decisions. Consider structuring book data. We structure it as XML. That’s a big decision. We chose XML, not JSON or CSV
or HTML or any other format. That decision influences everything we do henceforth, including the tools we use, the processing of the data, the errors we must grapple with, the degree to which the data is understood, and so forth. Next, we use <Book> as the
root element. That’s another big decision. The tag name uses ASCII characters, not Chinese characters or Cyrillic characters or Arabic characters. The tag name begins with a capital letter, not a lower case letter. So already we’ve made several huge decisions,
with nearly irrevocable consequences. We’ve locked ourselves onto a path for which it will be hugely difficult to change, should we want to.
How can we make more flexible systems?
How can we organize systems so that the decisions /Roger We want to break free of the tyranny of linear time.
[Alexey Radul, Ph.D. doctoral student of Gerry Sussman] |