[spip-dev] Syntaxe et Spip dynamique

J’ouvre un nouveau fil pour continuer, parce que ça commence à être sacrément mélangé, par rapport au sujet initial.

Je relève notamment plusieurs réflexions qui, de mon point de vue, renforcent mon propos :

  • RealET : Fondamental de SPIP (tant qu’on aura pas une syntaxe XML des squelettes) : on ne peut pas mettre une boucle dans une balise :frowning:
  • denisb : il faut d’abord pour cela avoir une syntaxe solide et non ambigue ce qui n’est pas le cas
    actuellement.
  • Rastapopoulos : Ce qui touche à l’analyse syntaxique et à la compilation est un des points les plus compliqués et complexes de SPIP, donc c’est pas prêt de bouger à court terme.
    C’est bien vrai que tout ça concerne bien la technologie du parsing, et non pas la logique de Spip.
    Donc c’est quelque chose qu’il serait souhaitable d’améliorer : il me semble que sur ce point tout le monde est d’accord, mais en même temps tout le monde fait valoir les difficultés qui s’y opposent dans l’immédiat.

Or il faut bien avouer que ça donne l’impression d’un cercle vicieux qu’il va être difficile de briser.
Notamment parce que je suis évidemment d’accord avec denisb : il faut “offrir des possibilités nouvelles (sans casser l’existant)”.
Et ne pas casser l’existant, c’est toujours ce qui est le plus difficile à respecter quand on veut transformer un peu fondamentalement une construction.

De ce fait, même s’il y a une réflexion en cours pour “tout changer”, elle est évidemment très complexe à mener, d’où le pessimisme quant à son aboutissement à court terme.
En même temps, comme on continue à apporter des possibilités nouvelles, le problème ne cesse de grossir régulièrement, probablement plus vite que la réflexion ne peut avancer.

Mon point de vue, devant ce genre de situation, c’est que le seul vrai moyen de sortir du statu quo consiste à extraire des “morceaux” du problème et à les traiter séparément de l’ensemble, quitte à alourdir provisoirement le traitement.
Le bénéfice de cette façon de faire, c’est qu’au lieu d’être devant un très gros problème, on ne s’occupe que d’un petit à la fois, en prenant soin de rendre ces morceaux aussi indépendants que possible du noyau initial.

En renouvelant cette démarche, successivement sur différents morceaux, au fur et à mesure que l’inspiration désigne ceux qui peuvent être isolés comme ça, on finit par avoir un ensemble sur lequel il est beaucoup plus facile de mener des réflexions, et de définir une stratégie de normalisation de la syntaxe.
Et à partir de là, d’en venir effectivement à une reconstruction d’ensemble qui réintègre les morceaux dans un tout cohérent et performant.

C’est pour ça que je pense à un “pré-parseur’”, comme une première solution intermédiaire qui permet de commencer à bouger.

Je pense que je vais déjà essayer de faire quelque chose dans mon coin, qui corresponde à ce que j’envisage ci-dessus.
En attendant, comme je ne prétends pas avoir raison en tous points, comme ça d’un coup de baguette magique, je suis preneur de toutes remarques complémentaires qui m’éviteraient de plonger dans un certain nombre de difficultés rédhibitoires.

Non, elle a déjà été menée, je l'ai exposée à Avignon en Juin 2009.
Il y avait une vidéo disponible sur le site http://medias.spip.org/ mais qui est fermé depuis un moment.
Il est désormais facile de faire passer un squelette de la syntaxe actuelle à n'importe quelle autre syntaxe,
depuis que j'ai réécrit le compilateur de SPIP pour bien séparer syntaxe concrète et syntaxe abstraite.
J'ai fait un essai de migration sur les 5253 squelettes du repertoire _squelettes_ de la zone,
il n'y en a que 8 où ça bloque (des cas très limite de ce qui est acceptable aujourd'hui), donc moins de 1% de pb de migration.

La question est donc ailleurs: est-ce qu'on accepte ou pas de changer d'habitude.
C'est une question qui est à SPIP ce que les tentatives de réformes de l'orthographe sont au français: tout le monde la souhaite, personne n'ose.

Pour ma part je trouve déplorable que Dreamweaver et consorts proposent des modes d'édition spécifiques à des outils comme SPIP,
mais pas pour SPIP parce que la syntaxe actuelle est trop éloignée de ce qui est utilisée habituellement.
Pourtant les faits sont là: le langage des squelettes décrit des instructions de pré-traitement qui sont prévus par XHTML et autres applications de XML sous le nom de "processing instructions" (les <?LANGAGE ... ?>) et c'est faute de ne pas se conformer à ce cadre que ce langage est rejeté par le plus grand nombre.

Faut se décider: ou bien on se réforme pour s'adapter aux outils modernes, comme le fit l'ancien français à l'avénement de l'imprimerie, ou bien on veut rester un patois, autrement dit à terme une langue morte. C'est un choix délibéré, pas un problème technique.

Committo,Ergo:Sum

26/11/10, Emmanuel:

Non, elle a déjà été menée, je l'ai exposée à Avignon en Juin 2009.
Il y avait une vidéo disponible sur le site http://medias.spip.org/
mais qui est fermé depuis un moment. Il est désormais facile de faire
passer un squelette de la syntaxe actuelle à n'importe quelle autre
syntaxe, depuis que j'ai réécrit le compilateur de SPIP pour bien
séparer syntaxe concrète et syntaxe abstraite. J'ai fait un essai de
migration sur les 5253 squelettes du repertoire _squelettes_ de la
zone, il n'y en a que 8 où ça bloque (des cas très limite de ce qui
est acceptable aujourd'hui), donc moins de 1% de pb de migration.

Est-ce que cette proposition de spec est exposée quelque part par
écrit ? Depuis le temps que j'en entends parler, je n'ai jamais vu
d'exemple de squelette, de spécfication de la syntaxe, etc. Dans le cas
où ça n'existe pas, une écriture, ouverte à remarques, serait un
premier pas nécessaire vers l'acceptation.

Est-ce que cette proposition de spec est exposée quelque part par
écrit ? Depuis le temps que j’en entends parler, je n’ai jamais vu
d’exemple de squelette, de spécfication de la syntaxe, etc. Dans le cas
où ça n’existe pas, une écriture, ouverte à remarques, serait un
premier pas nécessaire vers l’acceptation.

Oui, faute de temps ou à la suite de malentendus, on est plusieurs à penser qu’on n’a rien vu, alors qu’Emmanuel pense qu’il a tout montré.

J’ajoute à ça, que « ne pas casser » signifie qu’on veut vraiment pouvoir continuer à exploiter nos squelettes en patois, sans nécessairement les convertir en langue moderne lorsqu’on passe à SPIP 3.

Si le parseur de SPIP 3 lisait aussi bien les squelettes .html que .xml (ou .spip), sans rien forcer, ça donnerait le temps de migrer chacun à son rythme, ainsi que de faire évoluer la doc. Je n’ai toujours pas compris dans ce que dit ESJ si c’est ça qu’il prévoyait, ou si c’est un outil d’aide à la migration, qui exigerait qu’on traduise tout de patois à langue moderne en même temps qu’on met à jour le site.

Dans la mesure ou ce serait bien ça l’idée, pourquoi ne pas lancer pour commencer un format .spipa (SPIP alternatif) tel qu’il existe actuellement dans les cartons d’ESJ, qu’on testerait et qu’on ferait évoluer ensemble jusqu’à définir le .spip « final » (tout en gardant les parseurs .html et .spipa par souci de compat ascendante) ?

Je crois qu’on a besoin d’un scénario d’évolution qui satisfasse tous les besoins.

– Fil

Il y a beaucoup à apprendre de l’histoire de la Bretagne pour éviter de faire certaines aneries…

Bon ok je sors…

kent1

Je réalise que j'ai laissé passer une ambiguïté quand je parlais de syntaxe.

Ce qu'évoque Committo,Ergo:sum, ce sont les règles "orthographiques", en quelque sorte, qui pourraient évoluer pour se normaliser vis-à-vis d'un certain nombre de standards, par opposition au "patois" actuel.
Et je comprends bien les réticences qui se font jour dans l'hypothèse où il serait question que le patois doive être traduit, parce que n'étant plus compris par de nouvelles versions de Spip.

Mais ce que visent mes réflexions précédentes, ce n'est pas ça.
C'est, avec les règles orthographiques d'aujourd'hui, la possibilité de constructions moins limitées.
Et notamment le fait qu'une construction donnée, avec une orthographe donnée, cesse d'être tantôt admise et fructueuse, tantôt impossible, selon le contexte.
(peut-être après tout que "syntaxe" n'est pas le terme approprié pour ça... mais là tout de suite je n'en vois pas d'autre)

Dans cet esprit, il n'existe pas le moindre problème de compatibilité ascendante : tout ce qui était accepté continue à l'être, avec le même résultat qu'auparavant.
La nouveauté, c'est simplement qu'on peut faire plus, avec plus de liberté et moins d'obligations de contournements.

Mais ce que visent mes réflexions précédentes, ce n'est pas ça.
C'est, avec les règles orthographiques d'aujourd'hui, la possibilité de
constructions moins limitées.

Oui je crois que la proposition est claire ; mais ce que dit ESJ,
c'est qu'on a atteint les limites de ce qu'il est raisonnablement
possible de faire avec la syntaxe actuelle, et que pour évoluer il
serait plus sain (voire, nécessaire) de refonder la syntaxe.

Dès lors que les deux cohabiteraient, ça ne me paraît pas forcément
une idée abominable de penser que pour bénéficier de ces nouvelles
facilités d'écriture, il faille passer par un langage n+1.

-- Fil

Pourquoi du .spip ? on en est pas à créer un nouveau langage mais à partir sur un langage un peu comme le xml si je pige bien, donc .xml conviendrait mieux… ça prouverait que SPIP c’est pas du charabia incompréhensible par seulement des spipeurs…

.spip permettrait de se baser sur une dtd spécifique avec tous
les avantages que cela peut apporter.

Hello

Bon, pendant que c'était tout chaud revenu dans mon esprit,
j'ai mis dans la branche 2.2 une réécriture de tout le code
gérant l'extension d'un nom de squelette pour qu'il n'y ait
plus qu'une seule fonction qui s'en charge (trouve_modele
etait le candidat idéal, mais on peut introduire un homonyme moins trompeur).
C'est à partir du find_in_path dans cette fonction qu'on peut intervenir
pour chercher une autre extension, le phraseur et le reste suivront.

esj