Cheetah does not use HTML/XML-style tags like some other template languages for
the following reasons:
Cheetah is not limited to HTML,
HTML-style tags are hard to distinguish from real HTML tags,
HTML-style tags are not visible in rendered HTML when something goes wrong,
HTML-style tags often lead to invalid HTML (e.g.,
<img src="<template-directive>">
),
Cheetah tags are less verbose and easier to understand than HTML-style tags,
and HTML-style tags aren't compatible with most WYSIWYG editors
Besides being much more compact, Cheetah also has some advantages over languages that put information inside the HTML tags, such as Zope Page Templates or PHP: HTML or XML-bound languages do not work well with other languages, While ZPT-like syntaxes work well in many ways with WYSIWYG HTML editors, they also give up a significant advantage of those editors - concrete editing of the document. When logic is hidden away in (largely inaccessible) tags it is hard to understand a page simply by viewing it, and it is hard to confirm or modify that logic.