The Extreme Markup Languages© 2006 Conference is currently in full swing in Montreal, Quebec, and following B Tommie Usdin’s traditional opening to this years conference, was none other than my (and I assume yours as well? If not, you might want to reconsider your priorities there, champ, cuz’ uh, yeah… you need to. ;) :D) *VERY FAVORITE* hacker of *ALL TIME*, Dimitre Novatchev.

Higher-Order Functional Programming with XSLT 2.0 and FXSL

XSLT has turned out to be very different from the typical programming languages in use today. One question that’s being asked frequently is: What kind of programming language is actually XSLT? Until recently, the authoritative answer from some of the best specialists was that XSLT is a declarative (as opposed to imperative), but still not a FP [functional programming], language. Michael Kay notes in his article “What kind of language is XSLT” [Kay]:

This is as far as I’ve got into the paper, of which I plan now to rectify. But because of the luv’ I have for *each* and *every* one of you — well, most of you anyway ;) — I decided to share.

You’re welcome :D

Thanks Dimitre! I can’t wait to start learning… *IN PROCESS* :D

Update: SWEET! Just noticed the link to the PDF version of his presentation. While I could always print the HTML version, by habit I usually don’t as it just doesn’t read the same way as a well organized, clearly printed format such as that in which a PDF tends to promote. When a PDF (or .doc for that matter, though .doc is not as common when alternative formats are provided) is available, I immediately Ctrl+P as soon as its finished loading, as I prefer printed paper to the glow of an LCD on *ANY DAY* of the week.

Except holidays. I prefer family to *BOTH* of these on holidays. For that matter, I prefer family on non-holidays too, but — well, maybe I’d just best stick my nose back into the still warm to the touch paper I am now metaphorically devouring.

Again, you’re welcome. :D

Yet another Update: Uh, just finished reading this *REALLY GOOD* summary of day one of the conference (I *REALLY* needed to be at this conference, but I also *REALLY* need to finish some projects that now have specific deadlines attached to them as well, so unfortunately thats what I am presently in process of), written by David J. Birnbaum, when I came across the following comment from Ann Wrightson,

“Are you really expecting people to use this?” and went on to caution against a complexity that risks breaking tools, challenging maintenance, and engendering performance problems because “not only is it very clever, but it looks like stuff that isn’t clever, and it risks performance issues with XSLT processors that do not expect this type of code.”

Breaking tools? I’m not even sure I understand what she could possibly mean by breaking tools? How could you break an XML tool with XML? If you could, the problem wouldn’t be with FXSL — It would be with XML!

Furthermore,

“and it risks performance issues with XSLT processors that do not expect this type of code.”

Uh, when was the last time a hacker made the statement “you know, I’d better not see if I can solve a problem this other way cuz’ I’m not sure the processor will understand how to properly handle the code.”? Thats like suggesting that we all only speak with commonly understood sentences and paragraphs because we’re “just not sure if people will understand what we mean if we, *gasp*, were to come up with a *new way* to express our feelings about something in particular!”

While I recognize that XSLT processor developers, or any other code processor developer for that matter, will take steps to optimize their processors to take advantage of common coding practices, given the fact that in terms of XSLT 2.0 coding practices — except for Dimitre’s and Dr. Kay’s work — there aren’t any yet, extending from the above, this is like she is suggesting that everyone *MUST* write their code the way the designers of a language tell them they *MUST* write their code, as if the original designers had thought of *EVERY POSSIBLE* optimization, or combinations of technique before hand, and if you were to break away from this you run risk of confusing “processors that do not expect this type of code.”

Has anybody ever heard of the Muenchian Method? Hell, for that matter, has anybody ever heard of this new and exciting language called Machine? With all due respect, if we confine ourselves to think how Ann is suggesting, we might as well all start learning Machine Language, because when it comes down to it, Machine Language is most efficient because this is what the processor understands!

Of course, the developers might have a hard time understanding it, and as such, nothing would ever get done… but that’s not the point!

Err, wait… yes it is,

“Dimitre replied that FXSL expressions are clear and compact, and are easier to understand than long text, and he suggested that one measure performance not only in the few milliseconds of execution time, but also in the hundreds of hours of developer time.”

Yup.

Thanks for “keepin’ it real”, Dimitre! :D