<dtml-let> is like defining a local variable in python. REQUEST.set is like a global variable, but in Zope terms it only lasts marginally longer. SESSION.set is also global, but lasts even longer
I find I want to legitimately store a lot of stuff that belongs in the second case where REQUEST is the perfect vehicle, why is making this smell a little nicer a bad thing?
From the Zen of Python: "Explicit is better than implicit".
We've been trying hard to adopt this bit of Zen. If you write REQUEST.set, you can look at it and easily see what is happening. Same with SESSION.set. If you're looking at <dtml-set...> as a newbie to Zope, your first thought is probably "where exactly is this being set?". Who decided that REQUEST was a better place to implicitly set the variable? Why not the SESSION? We are trying to get *away* from the impression that everything in Zope is too implicit and magical :) It's funny to see things run full circle, as now some of the people who have beaten us up the most about too much magic are arguing for brand new and improved magic! :^) Brian Lloyd brian@zope.com V.P. Engineering 540.361.1716 Zope Corporation http://www.zope.com