Daniel Lemire's blog

, 2 min read

Standard Deviations : XSLT, RDF, XQuery, XLinq

Standard Deviations says he doesn’t get XSLT, RDF, XQuery, XLinq.

Here are some of his comments:

XSLT: It seems to me transformation is complex. It appears it requires a programming language. It strikes me I know a couple of those already. It strikes me that XSLT is yet another, and that I would rather use one I already use for everything else to do my transformation too.

I feel like there’s a big aha moment waiting for me in RDF, but it just doesn’t seem interesting enough to invest in getting there.

XQuery: The idea here is to have yet another XML based programming language? And this language is better than Python, Perl, or Ruby because?

My own answer is simple: XML is not, in any way, more powerful than Java, Python, Perl, Ruby or C#. XML is a standard way to write fancy documents (and by extension, fancy data structures) using a text stream. The key word is standard. XML is nice because it is widely supported. XML tools that are widely supported are nice to know. Period. There are no ah-ah moments waiting for you.

XSLT is nice enough because it is a powerful, yet friendly, declarative language. XSLT is also everywhere thanks, in part, to Firefox and Internet Explorer. So it is worth learning about XSLT because it is widely supported and there are respected XSLT standards.

The DOM API is also everywhere thanks, in part, to JavaScript and Java. Being available everywhere, and being usable, are really nice properties. The DOM API is also implemented in a consistent way. Yes, the DOM API is bad. It is verbose, it is hard to use. But then, so is C++ and we will still have C++ in 10 years.

I think that in 10 years, we will still have XSLT and we will still have the DOM API. Much of the rest will have gone away except for the truly good ideas because it is hard to get an idea widely supported. Supporting many alternatives is expensive. My own advice is: don’t learn any XML technology unless you need it or unless it makes its way on your machine on its own. XSLT and the DOM API squarely fit this nice. XQuery, XML Schema, RDF and XLink don’t.