Re: SAG-FO-01: Too many functions (general comment)

re
http://lists.w3.org/Archives/Public/public-qt-comments/2003Jun/0082.html
http://lists.w3.org/Archives/Public/public-qt-comments/2003Jun/thread.html#82

Hi

I am a developer; not an implementer but a user of XSLT and XPath. If 
the WG would scrap all those functions, I could implement them myself, 
in XSLT+XPath, but they wouldn't be as fast as they could be when they 
are implemented by the XSLT processor (or other XPath implementation), 
eg in C or C++.
And I'd have to ship my implementation with each of my XSLT apps.

Thus the WG should continue to design and specify a comprehensive 
standard library of useful functions.
(Else, initiatives like EXSLT will.)
A very small set of functions would leave too much to be desired on the 
side of the "user" (developer, not implementer).

Really redundant stuff like context-item() can be deleted.

But empty(), ends-with(), exists(), index-of(), insert-before(), 
item-at(), remove(), subsequence(), etc (plus possible future additions) 
are *not* "trivial syntactic sugar", but are a lot more expresive and 
clear than alternatives you list such as

for $i in 1 to count($s) return
       if ($s[$i] eq $v) then $i else ()

[[for index-of()]]


($target[position() lt $position], $inserts, $target[position() ge
$position])

[[for insert-before()]]


The intent is expressed more directly; this aids maintainability. 
subsequence() for example is very handy and expresses the intend nicely 
(pretty "self-documenting") when iterating over a sequence by recursing, 
when calling the current function with the rest of the sequence.

If implementers feel that implementing the whole lib is too much work, 
(remember that after having listed cost of implementation as major 
motivation for your request, for nearly every functuion you emphasize 
how simple it is to implement) then the spec could define an additional 
type of conformance level (in addition to schema-aware and -unaware):
One category of XSLT processors which implement the standard lib, and 
the other category of processors which do not. This should satisfy all 
the requirements or wishes of vendors such as those Software AG seems to 
have.

Then let each user decide which type of processor is more useful for him.

Tobi

-- 
http://www.pinkjuice.com/

Received on Thursday, 12 June 2003 09:25:54 UTC