I think Michael is spot on (as usual). I have a couple of XSLT
modules in my training courses. Most non-programmers “get” XSLT and love it
straight away. They are blown away by what you can do in just a few lines of
code. Some of those used to procedural languages also get it, but others take
time. There is usually an epiphany at some point, but what it takes to get
there varies from person to person. For some, the concept of the
apply-templates selecting nodes and putting them in a bucket, then the templates
themselves taking what they want from the bucket works. Not introducing
call-template until they are well used to apply-templates helps as well. Meanwhile, I hate Outlook 2007, which won’t let me prefix lines
with a “>” even when I set the option, forcing me to reply at the top of the
message or make my reply look quoted. Probably finger-trouble, but any off-list
fix gratefully received. Paul From: Michael Kay [mailto:mike@saxonica.com] > Why do people despise XSLT so much? The people who don't get on well
with it are programmers (and script kiddies) who think they can approach it as
"just another scripting language" that will behave like the previous
language they used and that can be learnt by trial and error without first
studying the concepts. Sometimes they are put off by the surface syntax and the
verbosity (especially in the case of XSLT 1.0, and especially if you try to use
it without understanding template rules), sometimes they are put off because
they just can't get to grips with rule-based programming (they like to be
"in control", which means writing imperative code), sometimes they
can't cope with the functional nature of the language (their mental model of
programming is based on putting values in memory locations) and in
particular with recursion. From: Michael Kay [mailto:mike@saxonica.com] > Why do people despise XSLT so much? Well, as I said before, there is certainly a tendency for people to
either love it or hate it. I think the people who get on well with XSLT are either: * non-programmers who use it as a simple templating language and
don't attempt any serious structural or algorithmic transformations: they like
the fact that it doesn't feel like programming * programmers with a sufficiently deep understanding of their
craft to appreciate the semantic power of the language and not be fazed by
recursion, rule-based programming, or quirky syntax The people who don't get on well with it are programmers (and
script kiddies) who think they can approach it as "just another scripting
language" that will behave like the previous language they used and that
can be learnt by trial and error without first studying the concepts. Sometimes
they are put off by the surface syntax and the verbosity (especially in the
case of XSLT 1.0, and especially if you try to use it without understanding
template rules), sometimes they are put off because they just can't get to
grips with rule-based programming (they like to be "in control",
which means writing imperative code), sometimes they can't cope with the
functional nature of the language (their mental model of programming is based
on putting values in memory locations) and in particular with recursion.
Another factor that causes a lot of frustration is debugging: you don't tend to
get much help from the system either at compile-time or at run-time when you
get your path expressions wrong (and schema-aware programming, which largely
solves this problem, is typically used only by those who are already experts
and don't need convincing). Another factor (largely solved by XSLT 2.0) is that
the function library is so sparse compared with other languages. Regards, |