On 10/06/05, Lee Daniel Crocker lee@piclab.com wrote:
I decided to release my new syntax for comment before I finished the formal definition.
This started off as a few quick comments, but grew as I thought; I hope it proves constructive...
* In general, I like these suggestions more than I thought I would, particularly the "generic inclusion syntax"; although whether it would appeal in the same way to non-technical users I'm not sure. One major problem I see with such a text-heavy syntax is localisation - French users *will* be put off if they have to type "begin include". Obviously, we have this already to some extent, but this syntax feels much more verbose - "{{}}" doesn't need translations. In order to allow multiple languages to exist on one site, it would probably become essential to be able to map the entire wikitext of an article into a different syntax-dialect (e.g. "<<begin ...>>" -> "<<commence ...>>") on demand.
* I'm not 100% sure about external links using "|" as a separator (you don't have an example of this, but you imply it) - because they can be quite long and include all sorts of characters, it might not be clear at a glance where the URL ends and the text begins: [[http://mail.wikimedia.org/pipermail/wikitech-l/2005-June/030155.html%7Cwikit... post about Lee's syntax]] vs [http://mail.wikimedia.org/pipermail/wikitech-l/2005-June/030155.html wikitech-l post about Lee's syntax] (Obviously, with a page link, the opposite problem arises - because the page name can include " ", you can't say [[a page and its target]] and know how to split it.) I'm not saying I'm desperately married to the current syntaxes, but I do think there's a certain logic to having URLs terminated with a space.
* your omission of any keyword or character to reference built-in variables seems odd - <<servername>> looks like it should mean "invoke extension 'servername' with no input". I think <<global servername>> or <<$$servername>> would be more consistent with your other syntax.
* come to that, why do template parameters ("<<$foo>>") get to be less verbose than everything else? Consistency would demand "<<param foo>>", whereas simplifying most common usage would probably lead to something like "<<+foo>>" instead of "<<include foo>>". I suspect you've been swayed by programming experience here - it's "obvious" to you that "$" means "variable", so why invent something new? But in doing so you've over-ridden what was clearly a design goal of not having lots of "magic characters"; for better or worse, that avoidance is the feature that comes out most strongly - verbosity in place of arcanity, I guess.
* I also like your elimination of all HTML and HTML-like elements - as you say, this will avoid confusion about people adding things in ad hoc, although incorporating references to CSS may bring on a whole new plague
* I note that your image syntax sticks with the current kinds of argument (although a cryptic note implies that some of these will relate to styles in some way); it occurs to me that things like "frame" and "left", being neither named nor position-dependent, aren't consistent with everything else. Perhaps "align=left" and "style=frame"? [I guess what they imply is "frame=true" and "left=true", but this isn't how, say, "<<include foo left thumb>>" would interpret its arguments]
Right, I'll stop there, and probably find that other people have made the same points more eloquently already. Ah well...