Cagle's Law of Constant Complexity?

by Rick Jelliffe

Good quote from Kurt Cagle on XML-DEV "Simplicity is good - it makes interoperability far easier. However, simplicity in one place usually comes at the expense of complexity somewhere else."

The trick is to move the complexity to areas that only get programmed once: libraries and languages, I suppose. So that day-to-day work is done using the simple technologies.

2 Comments

M. David Peterson
2007-01-22 04:45:54
+1 Schematron rules the Schema-based World
+1 Cagle's Law of Constant Complexity. I also like Cagle's Constant as a shortened version.
+1 Though not specifically brought to the surface, much like Occam's Razor [ http://en.wikipedia.org/wiki/Occam's_Razor ],


In short, when given two equally valid explanations for a phenomenon, one should embrace the less complicated formulation.


Which I believe is *EXACTLY* what Schematron represents.


As a side, but related note, isn't funny how it's the first technology that tends to be the most correct as solving the problem at hand, though no one is really quite sure how to use it properly, or maybe better said, what to use it for. The second attempt is filled with so many ideas on how to make the first version better, though without any better understanding of what it will be used for, and as such seems to so overshoot the mark that a third time is required to fix all the problems of the second, before finally realizing that it was the first that was most correct in the first place.


An example: CDF got the core principles of what an XML subscription feed should contain, and how a proper specification should be defined, though the world wasn't ready, nor did anybody really know what to use it for.


RSS 0.9x > RSS 2.0 came in with all of the ideas in the world of how to make it "better" yet no clear understanding of what the ultimate design goals were, or what it should be used for/how it should be used.


Atom then came in and pulled in the reigns, and brought a sense of understanding as to what it was that was needed (the ability to subscribe to content of interest) and how to go about delivering a proper specification providing reasonable expectation of what one could expect, and what one could not when coming across an Atom-feed in the wild, and therefore ensuring a solid foundation that didn't break at the first sign of anything human.


CDF didn't/doesn't break, was/is well designed, but at the time of its conception and delivery, the world didn't know what to do without, and therefore wasn't ready.


Schematron didn't/doesn't break, was/is well designed, but at the time of its conception and delivery, the world didn't know what to do without, and therefore wasn't ready.


That said, there seems to be a definitive point of difference: Schematron is still in the game, where as it seems that Atom has filled the shoes of what I would have assumed would have eventually been filled by CDF (or a variation thereof) after people got sick and tired of an RSS 2.0 feed breaking the web every 14 seconds.


Of course one might try and suggest that RelaxNG is to the schema world, what Atom is to the subscription web feed world, but for this to be the case, RNG would need the ability to provide an adequate solution to most any job it encountered, something I don't believe RNG is capable of (in fact, I *KNOW* it's not capable of), where as Schematron, is.

M. David Peterson
2007-01-22 04:50:09
Correction: "the world didn't know what to do without" should have read "the world didn't know what to do with it" in both instances (copy and pasted the first into the second, if not obvious ;)