Dieter Maurer wrote:
Be very reluctant to extend TALES. Do not do it do get just syntactic sugar in order to save a few lines of code.
I agree that we should be wary. Adding a feature to make something simpler simultaneously complicates the whole picture. To offset that negative, the new feature has to be a lot better than the previous alternatives. Well, here's a sample of what we'd get with prefixes in path expressions, all with a very minimal addition to TALES. "call:" eliminates the need for implicitly calling things. Purely explicit calling would eliminate a major class of bugs. "format:" provides access to the same string formatting API that previously required importing a module. In fact, it seems unlikely you'll want to import *any* modules in templates anymore. "zope:" gives you access to a nice Zope-specific API, again without importing a module. "dc:" lets you access simple Dublin Core metadata. Perhaps "here/title" should even be deprecated and replaced with "here/dc:title", since it's more explicit and more likely to generate the expected result, yet no more work. I almost forgot to mention the most compelling reason why we need prefixes: in Zope 3, we won't be able to fall back on implicit acquisition anymore, so we need something to replace it. Here's the (old) proposal that explains it all-- http://dev.zope.org/Zope3/NamespacesInTemplates You see, prefixes are meant to let you work comfortably in an otherwise excruciatingly explicit world. :-) Shane