This is probably a holywarish topic, but nevertheless.

In a perfect content management system of your dream, would you rather want a templating system that is completely, 100% separate from your code, and uses declarative syntax to produce (X)HTML (such as <your code> -> DOM/XML -> XSLT -> HTML), or would you rather choose a system that lets your code cook HTML fragments, and then runs some template assembly to put these pieces together to output a complete page?

Thanks in advance.


To make it probably a bit more clear, I mean that HTML is a declarative 'language', whereas most of the dynamic stuff is done in imperative/functional languages. Templates glue the two together, but the way they do it isn't always clean (as in clean separation of paradigms).

  • I already have perfect separation between templating and code. It's not a dream system. It's Django. I don't understand the question. It seems that perfect separation is the way many systems are built.
    – S.Lott
    Feb 15, 2011 at 16:52
  • "but the way they [glue HTML declarative and imperative] isn't always clean". What does that mean? Are you complaining about loop and decision constructs in the template language?
    – S.Lott
    Feb 15, 2011 at 17:38
  • or am I complaining at all?
    – etranger
    Feb 15, 2011 at 17:47
  • @etranger: "isn't always clean"? This is a complaint. If it's not supposed to be a complaint, you need to avoid subjective value judgements like "clean".
    – S.Lott
    Feb 15, 2011 at 18:05
  • I disagree, but then again, English is not my native. I was making a statement, if you will. Clean = conforming to paradygm. Anyway, I suggest we leave it as it is, I get your point, thank you.
    – etranger
    Feb 15, 2011 at 18:33

2 Answers 2


If the popularity of Ruby on Rails, Django and ASP.NET MVC have taught us anything it is that a clean, MVC-style web framework combined with HTML-like templating that has nearly full language access is the way to go. Can developers make bad decisions about where to put formatting code? Sure. But I'd rather take that risk then deal with the necessary hacks and tricks one needs to do in a system with full separation. Tell me again, how does one format a date in XSLT?


The Xml => XSLT => HTML path is probably overkill. Better just to use a template to output the HTML you need.

  • 1
    Overkill as in too complex, too much to learn, too much resource overhead or something else?
    – etranger
    Feb 15, 2011 at 17:29
  • My two cents: Too complex, more resource overhead than you need and more of a pain in the ass to maintain than HTML templates.
    – immutabl
    Feb 15, 2011 at 21:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.