Sunday, January 31, 2010

Lack of isomorphism in RIA Web Markup

I'm continually bothered by a nagging sense of discomfort with the way Web standards and popular technologies have developed over the past seven years. Emerson is often misquoted thus
Consistency is the hobgoblin of a small mind
but the actual quote is
A foolish consistency is the hobgoblin of little minds, adored by little statesmen and philosophers and divines.
The foolish consistency of which Emerson writes is, I believe, not the kind of uniformity which, if not present, lends that ineffable sense of elegance to mathematical theories, but is just that kind of embedded legacy of practice we see every day on the Web. One remark is that a lack of symmetry and non-uniformity is inversely related to the perpetuation of foolish consistencies.

I'll just draw attention to the axiomatic approach to mathematics, in which theorems are logically derived from definitions, and higher order systems are constructed. Algebraic systems for instance are logical systems of relations which consist of a set and one or more operations on that set, which together satisfy some given algebraic axioms (closure, associativity, identity, invertibility, etc.) The uniformity of such algebras is what allows us to construct logical statements and make formal deductions with great confidence that the results make sense.

Many programming platforms are lacking in that kind of uniformity. This is especially true of Web platforms, where historical accidents and what-the-browser-developers-could-get-working define the basic assumptions of the system. The foolish consistencies of linearized element layout for example continue to be perpetuated even as the industry shifts to CSS 3, because the CSS layout model inherits its assumptions from HTML. Consider also that in so many programming environments, it is rare to have the same operation applicable uniformly across all of the elements of a set. Neither is the DOM API the gleaming example it could have been, when one considers the effort that had gone into the node set APIs that preceded it (Groves for example). And now the industry continues to build upon the Swiss Cheese architecture with microformats, a half-hearted retake on architectural forms with more holes.