• #Mustache, ERB and the future of templating · by Kyle Neath
    http://warpspire.com/posts/mustache-style-erb

    résumé : les templates mustache c’est super car on ne peut rien faire dedans à part de l’affichage ; du coup, on est obligé de séparer l’affichage et la sélection (view) du contenu.

    You cannot modify variables. You cannot apply filters. You can only output variables or a collection of variables. Everything else happens inside of a view. A view can be written in any language of your choosing: C, Objective-C, Ruby, Python, Javascript, etc.

    J’aime bien mustache, pour cette simplicité. Mais ça implique de savoir programmer une vue, et pour ça, il n’y a pas d’outil facile. Dans les squelettes #SPIP, c’est exactement l’inverse, et c’est super aussi, mais différemment, de permettre, dans un même #template, d’à la fois sélectionner et traiter son contenu.

    • C’est horrible Mustache et compagnie. Cette mode du logicless me semble assez dénuée de logique.

      Comme les conditionnelles de ce type de langage sont très pauvres, dès que tu veux faire une opération du genre if (A ou B), au lieu d’avoir un gentil « if (A ou B) » dans ton template tu retrouves avec du code de vue du style « data.isAorB = (A ou B) » ET un « if (isAorB) » dans ton template. Nécessairement multiplié, ça donne du beau gloubiboulga au final (petit exemple sur un seul template : https://github.com/darobin/respec/blob/develop/js/w3c/headers.js#L269).

      Il est évident qu’il ne faut pas faire n’importe quoi et répartir sa business logic n’importe où. Mais -c’est une bonne pratique, pas quelque chose qu’un langage de template peut imposer utilement.

    • Cette mode du logicless me semble assez dénuée de logique.

      CQFD.

      Je plussoie grandement, pour moi, c’est une lubie de mauvais architecte logiciel, qu plane dans sa stratosphère et ne s’est pas assez confronté aux besoins tordus, fins et détaillés du « monde réel ». Sinon, Mustache, je ne connais pas, je réagissais par analogie à ce que j’ai pu rencontrer.