[Zope] WebDav wishful thinking WEBCR ideas.questions

Brian Lloyd Brian@digicool.com
Tue, 7 Dec 1999 16:50:11 -0500


> ..I think I just got a healthy mental kick in the right 
> dirction by looking
> at the Rebol site http://www.rebol.com 
> 
> For example looking at http://www.rebol.com/examples.html
> 
> item #1 Fetch a web page and send it as email. [1 line Rebol script]
> "send luke@rebol.com read http://www.rebol.com" 
> 
> What would it take to integrate this kind of proweful clarity 
> into Zope.DTML ?

I hadn't looked at Rebol before today. My impression (FWIW): while
I'll agree that your example above is exceptionally clear, that
clarity also degrades as the logic becomes more complex. This is 
not to make a judgement on Rebol necessarily - I think that this
is an issue in _any_ language or environment. Before you know it,
people will have moved beyond:

 "send luke@rebol.com read http://www.rebol.com"

to need:

 "send luke@rebol.com read http://www.rebol.com but only if he's
  allowed to see it and only if its sunday and oh yeah convert it
  to multi-part while you're at it"

From what I saw of Rebol, the end result would be significantly
uglier than my contrived example above :) Again, that's not to
bash Rebol in any way - I'm certain that the equivalent DTML is
just as or even more ugly. Complexity just naturally grows in step
with flexibility. 

A lot of this really goes back to the root question of "what is
DTML really for?", which I won't go into at length (there have
been several threads about it lately). I would, however, suggest
that in many ways the use of External Methods or Python Methods
is the natural and Pythonic way to deal with reducing complexity
(at least apparent complexity from the point of view of the DTML
user). While there is no equivalent to your send-page example
implemented as a simple embedded DTML command, it is pretty 
easy to hide that complexity behind External Methods or Python
Methods that implement those "commands":

<dtml-call "send_page_to_someone('luke@rebol.com', 'http://rebol.com')">

I'll be the first to admit that this is not quite as pretty, 
but it is not unreasonably ugly.


> How could Zope use Rebol or a rebol-like python external 
> method to best
> effect?
> any ideas?

I don't quite understand this - by this do you mean some kind
of object like an external method but that could be written
in Rebol? If so, that wouldn't really fix the DTML ugliness
problem would it? You'd still have to say something like:

<dtml-call "send_page_to_someone('luke@rebol.com', 'http://rebol.com')">

...even if the actual work was done in a different language
wouldn't you? Perhaps I'm missing your point though.



Brian Lloyd        brian@digicool.com
Software Engineer  540.371.6909              
Digital Creations  http://www.digicool.com