

Show HN: A django-inspired JavaScript templating system - deoxxa
https://github.com/deoxxa/node-ginger

======
greut
Isn't "new Function" as evil as "eval" is evil? I guess when you call
something a Compiler, it's allowed to do evilish stuff.

~~~
deoxxa
It's definitely evil, when it's used at runtime. In general (non-testing)
usage, it would be written out to a file after compilation and there'd be no
eval() action at runtime.

~~~
itmag
Why is eval evil? Because it's insecure? Inefficient?

~~~
deoxxa
It's mainly just slow - the whole set of code has to be parsed, processed,
validated, run, etc every time it's used.

It's not insecure in this usage (even if it were used on the client), as all
the actual code is generated by uglify-js via an AST and it takes care of
properly escaping everything.

------
vicngtor
For all I know Django's templating system is probably the worst templating
system in the entire python web ecosystem.

~~~
deoxxa
The only thing I'm really taking from the django system is the syntax and some
of the concepts. As far as I know, it's implemented completely differently.
Very simple django/jinja2 templates will compile with Ginger, but the
functionality is designed to be closer to Twig than anything.

