This looks interesting, I wonder if erb was the inspiration for this? After having a look I do have a few hesitations about this library, mostly around their focus on speed as the selling point, but also because it removes the contextual escaping.
I find the charts a little misleading here, since their focus is on speed it's important to benchmark correctly. Firstly there is no context given as to what they do except the link to other benchmarks (parsing + eval or just eval time?), they are in microseconds, which is an incredibly small amount of time when considering web requests - typically responses are in 10s of milliseconds, so saving 0.03ms is not very useful over a request, and speed just is not a problem with the stdlib templates, so why focus on it? I think to be useful the benchmarks should include parsing say 40 templates, using all the functions of the parser (functions, methods etc), as at present it looks like a very trivial benchmark which is not measuring useful work. In a typical web request/response the different measured here simply wouldn't show up in the response times at all as it is so small. So perhaps speed is not the right attribute to focus on?
There are shortcomings to the html/template library though (loading templates is painful, the new system of blocks from 1.6 I don't find useful, would rather layout/partial) so it's good to see other libraries popping up which take a different approach, but I'd prefer to see them focus on that than yet more benchmarking. Hero looks very different from the stdlib templates, and would have to be used everywhere in an app, so it's a big commitment to switch to it, and after switching you couldn't switch back easily. It gets rid of the context-sensitive escaping the html/template does which I think is really useful and obviates a whole set of vulnerabilities most people aren't even aware of, and it puts a bit more logic in the templates. Personally I'm very happy that the stdlib templates have little logic in them and don't encourage you to add it.
This looks interesting, I wonder if erb was the inspiration for this? After having a look I do have a few hesitations about this library, mostly around their focus on speed as the selling point, but also because it removes the contextual escaping.
I find the charts a little misleading here, since their focus is on speed it's important to benchmark correctly. Firstly there is no context given as to what they do except the link to other benchmarks (parsing + eval or just eval time?), they are in microseconds, which is an incredibly small amount of time when considering web requests - typically responses are in 10s of milliseconds, so saving 0.03ms is not very useful over a request, and speed just is not a problem with the stdlib templates, so why focus on it? I think to be useful the benchmarks should include parsing say 40 templates, using all the functions of the parser (functions, methods etc), as at present it looks like a very trivial benchmark which is not measuring useful work. In a typical web request/response the different measured here simply wouldn't show up in the response times at all as it is so small. So perhaps speed is not the right attribute to focus on?
There are shortcomings to the html/template library though (loading templates is painful, the new system of blocks from 1.6 I don't find useful, would rather layout/partial) so it's good to see other libraries popping up which take a different approach, but I'd prefer to see them focus on that than yet more benchmarking. Hero looks very different from the stdlib templates, and would have to be used everywhere in an app, so it's a big commitment to switch to it, and after switching you couldn't switch back easily. It gets rid of the context-sensitive escaping the html/template does which I think is really useful and obviates a whole set of vulnerabilities most people aren't even aware of, and it puts a bit more logic in the templates. Personally I'm very happy that the stdlib templates have little logic in them and don't encourage you to add it.
What advantages over the HTML/template ones?
Seems to be sold on speed, but also there's a different syntax. It does unfortunately miss out contextual escaping, which I'd miss.