April 24, 2004
@ 04:52 AM

In response to a post about tunneling variables in XSLT 2.0 on the Lambda the Ultimate weblog, Frank Atanassow writes

The markup language community is notorious for reinventing and duplicating concepts and terminology, sometimes even their own. Thus they have "minimum literals" rather than "string literals", "parameter entities" rather than "macros", "templates" rather than "procedures" or "functions", "validate" rather "type-check", "data binding" rather than "translation", "unmarshal" rather than "parse" et cetera.

I suspect that a lot of this is due to sins of omission instead of sins of commision. People in the markup world just aren't that aware of what's going on in the world of programming languages [or databases] and vice versa. I have to deal with this a lot at work.

Thanks to Joshua Allen for pointing out this comment to me.



Monday, April 26, 2004 7:58:03 AM (GMT Daylight Time, UTC+01:00)
Dare, you are too kind: every single one of Atanassow's examples is wrong-ish. People use different terms for similar things not only out of ignorance but also because they are emphasizing some different aspect.

A "minimum literal" is not just a "string literal" (hint: the "minimum" means something). Entities in general are not macros but linked resources which can have metadata; for general entities to have one name but parameter entities to have another would be Razor-rash for Occam. Similarly, "templates" are named because that is what they are, when considering a declarative push XSLT document: sure considered as an XSLT program, they are functions; but considered as a document, they are templates. You "validate" with DTDs because you are certainly not type-checking the data content; furthermore, in XML Schemas, validation does more than type-check, it also notationally labels data with the type (in the PSVI). The terms "data-binding" and "unmarshall" simply don't come from the "markup language community" but from our kissing cousins in the database world along for the hayride.

I suspect that, at its heart, his view is that programming is the lifeblood of computing, rather than a bootstrapping activity which will become increasingly irrelevant as declarative systems (and the terminologies that are skewed towards declarative understanding) pervade.
Indeed, one aim of declarative systems should be to disconnect people from having to know anything about programming languages and DBMS.
Tuesday, April 27, 2004 3:50:21 AM (GMT Daylight Time, UTC+01:00)
I'm personally offended at most of those comments. I think there are some blatantly generalized assumptions indicating that this person does not understand the true nature of markup.

For instance, a template is not a function or a procedure, as those terms indicate procedural model, XSLT is a declarative model. I agree that at some level, XSLT must execute some procedures in some order, but the level at which the template exists is outside the context of a function or procedure. I also agree that, if you search the roots dep enough (no pun intended), you'll find those old-school patterns. But, if you're looking for Phi, you're going to see Phi everywhere you look.

I chalk it up to someone who is ranting about something...as tends to happen in blogs. I must say that I disagree with these gross generalizations like "everyone who does so-and-so is such-and-such". It's not a black-and-white world.
Comments are closed.