XSLT interdit tout effet de bord.
Est-ce un avantage ou un inconvénient ?
Nous avons suivi le débat pour vous...
Par Eric van der Vlist,
Dyomedea (vdv@dyomedea.com).
lundi 17 avril 2000
Le débat avait démarré de manière anodine sur xsl-list suite à une question
de Francis Selva s'étonnant de l'ordre dans lequel
XSLT traitait les attributs.
Il failli tourner court après la réponse de David Carlisle
(
"les attributs sont explicitement [définis comme étant] des animaux sans ordre et les
parseurs peuvent les renvoyer dans n'importe quel ordre"
) et Mike Brown dû
le relancer par deux fois avant que l'on ne revienne sur des points plus fondamentaux :
"Un autre pourquoi... pourquoi est-ce que l'ordre du traitement
serait-il différent de l'ordre avec lequel les choses sont ajoutées
à l'arbre résultat ?"
Les réponses, impossibles à résumer, fournissent des éléments de réflexion
intéressants pour la compréhension de la nature de XSLT et de
ses différences avec d'autres langages.
- David Carlisle : parce que l'on s'est interdit
à autoriser tout effet de bord dans le traitement des templates pour
pouvoir les parallèliser.
- Paul Tchistopolskii : C'est un argument mythique (la mémoire
manque avant la puissance de calcul) qui a introduit des limitations bien réelles
(l'absence de variables modifiables).
- David Carlisle : un langage fonctionnel comme
XSLT est plus sur à utiliser qu'un langage procédural.
- Paul Tchistopolskii : dans le monde réel
,XSLT a de telles limitations que certains problèmes
ne peuvent être résolus que par l'utilisation d'extensions non standards et
présentant des effets de bord.
- Khun Yee Fung : Cette absence d'effet de bords est très
importante pour pouvoir optimiser des traitements XSLT
dans un contexte de base de données XML.
- Paul Tchistopolskii : L'absence d'effet de
bord oblige à répéter les traitements puisqu'on ne peut pas stocker
les résultats intermédiaires, ce qui interdit son utilisation pour
des applications complexes.
Cette dernière réponse sera t'elle la conclusion ?
Copyright 2000,
Eric van der Vlist.
|