Re: Ideal tag syntax; what's your take on it?

Daniel Henrique Alves Lima <[email protected]>
Newsgroups gmane.comp.web.freemarker.user
Message-ID <[email protected]>
Hi Daniel.

I forgot to answer this thread...

A little context:
Well, I've worked with JSP (and prior template engines) for a while. A few
years ago I started working at a company in which the "web masters, novice
PHP programmers who wrote the presentation layer of our application JEE,
were accustomed to using Velocity. At that time I already knew Velocity
because I had written some tools for source code generation. Unfortunately,
for some reason (?), I did not like to use Velocity to produce (X)HTML.
After some Googling, I found FreeMarker.

A cool feature (or side effect of syntax) of Velocity and FreeMarker was to
write a vm. or. ftl template, rename it to .html and "see" the result in a
browser, without using any kind of backend. That was very helpful when I was
writing templates for HTML emails. Off course, it won't work for any case.


One lesson I learned from Groovy (and also from FreeMarker): Make a terse
syntax. Keep the template readable by humans. Even using code completion, I
really hate to write <abc-def:xyz a="${q.getAbc().toString()}" b="true">
when I can write <xyz a=q.abc b=true>. I also hate XML ;-)
One lesson I learned from somewhere else: Make things easy for the IDEs.
Probably a contradiction :-)


2011/6/7 Daniel Dekany <[email protected]>

> Ignore backward compatibility for a moment. What would *you* prefer?
> Or if you have no idea, what aspects of the current syntax bothers you
> the most in every day work?
>
>
> A bit of mussing from me (if you care)... The most modern form of
> FreeMarker syntax is like this:
>
>  [#assign x = 1]
>  [#if something]...[/#if]
>  [@myDirective]...[/@myDirective]
>  [@myOtherDirective /]
>
> Despite that the documentation doesn't push thins syntax at all, it
> has become very popular. That tells something.
>
> My personal(?) problem with the current situation is that while FTL
> (FreeMarker Template Language) has lost a lot from its SGML-ishness
> (HTML-isness) during its history, it kept some of the not-so-good
> things from it. So I'm afraid we have ended up with a mix that's too
> far from the ideal. Let's see:
>
> How FTL is not SGML:
>
> - For starters, the attribute syntax was never like in SGML or XML.
>  This is the cause of the most frequent mistake, where people try to
>  write <@foo x="${x}" /> instead of <@foo x=x />
>
> - 2.3 introduced those odd prefixes, "#" and "@" (instead of using
>  XML-ish name-space prefixes). I don't mind this in itself, not at
>  all. It's just not SGML-ish.
>
> - And now it doesn't even use <...>, but [...].
>
> How FTL is still similar to SGML:
>
> - You have to add a "/" to each empty-directive tag ([@foo /]), but
>  you don't have to add anything if nested content follows
>  ([@foo]...). Isn't that anti-intuitive and often inconvenient?
>  Nothing but SGML has this strange upside-down logic (I think).
>
>  Also, to complicate things... there are those who are more equal
>  than others. For a built-in directive you can write something like
>  [#assign x = 1] instead of [#assign x = 1 /], since FreeMarker knows
>  if they can have nested content or not.
>
> - You don't have to put comma between named arguments. In SGML you
>  have to quote non-trivial attribute values, so it isn't an issue
>  there, but I don't think any sane modern *programming* language
>  would do this with named arguments. [@foo x = a + 1 y = b + 1] is
>  just horrible. Luckily, you can write [@foo x = a + 1, y = b + 1] in
>  FTL, but you don't have to. (As a side note, we also have
>  ambiguities because of this: <@foo x = a! y = 2> will be parsed as
>  <@foo x = a!(y == 2)>. Yeah, part of this is that FTL allows "="
>  instead of "==". That was a mistake too...)
>
> --
> Best regards,
>  Daniel Dekany
>
>
>
> ------------------------------------------------------------------------------
> EditLive Enterprise is the world's most technically advanced content
> authoring tool. Experience the power of Track Changes, Inline Image
> Editing and ensure content is compliant with Accessibility Checking.
> http://p.sf.net/sfu/ephox-dev2dev
> _______________________________________________
> FreeMarker-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/freemarker-user
>

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev

_______________________________________________
FreeMarker-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freemarker-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.