I noticed the following in the introduction for StringTemplate:
StringTemplate interprets o.p by looking for property p within object o. The lookup rules differ slightly between language ports, but in general they follow the old JavaBeans naming convention. StringTemplate looks for methods getP(), isP(), hasP() first. If it fails to find one of those methods, it looks for a field called p.
This doesn't seem to jive with this paper: http://www.cs.usfca.edu/~parrt/papers/mvc.templates.pdf
Doesn't this open the door for violations of model/view separation, by essentially allowing the model to pull data by calling a method? A bad programmer could write a method getP() that causes side effects. How does ST "strictly" enforce the separation of concerns here?