At 16:50 07/12/99 -0500, Brain Lloyd wrote:
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/>http://www.rebol.com"
to need:
"send luke@rebol.com read <http://www.rebol.com/>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.
Yes I agree with you. in fact I find as one works one's way down the examples list at: <http://www.rebol.com/examples.html>http://www.rebol.com/examples.html It starts to look more and more like any.py file To me there are two clear ideas in Rebol at a glance: - it uses spaces instead of other punctuation. This makes it a little more like 'natural human' prose langauges such as written english. - Rebol uses context lookup so that a command such as 'send' or 'read' apllies some common snese get-it-out-my face tricks to apply embdeed code to parse anything whihc has www. in it and go: "Ok - its http" or 'zope@zope.org', thats pop or smpt" etc.. The context 'dialect' ideas in Rebol perhaps do relate well to the acquistion features of Zope and what could perhaps be a 'cleaner' way forwards for future version of Zope syntax. As I understand _good_ use of Zope Acqusition allows powerful context-based structures to evolve. The designer of Rebol seems to have given a lot of thought to context-oriented sytnax and how to maintain it. There is an interesting interview at: <http://www.rediff.com/computer/1999/sep/29carl.htm>http://www.rediff.com/c omputer/1999/sep/29carl.htm It could be an interesting test to see how far one could push pseudo code, python or similar to write a short story/novel say. At what point would that become illegible to non-programmers or vice versa?
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/>http://rebol.com')">
I'll be the first to admit that this is not quite as pretty, but it is not unreasonably ugly.
Precisely. Parse out some pun5tuation adn wired characters and one is back to a REBOl like regualkr prose style use of english. I am left wondering how to improve my Python skills so that my code reads more simply. How to construct a 'send' or 'read' c;ass metthod which can parse ahead a little or at least sniff out protocols under the hood and run defaults unless over-ridden. Rebol looks little like 21st century [forward polish] FORTH or good LINGO.
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/>http://rebol.com')">
...even if the actual work was done in a different language wouldn't you? Perhaps I'm missing your point though.
hmm..well that's close and quote acceptable to zope99ers. But how about: <dtml-rebol send Brian@digicool.com "Hello Brian, check out <http://www.reol.com/>www.rebol.com and www.zope.org" or <dtml-rebol zope@zope.org read <http://www.rebol.com/>www.zope.org/members/brian/messages/today> ?? ie leverage on the Rebol clarity and scalability and excellent potential for mobile/PDA apps market, but using Zope as richer sophisticated environment for hosting and integrating = ie what it does well Or alternatively some friedly construct like <dtml-in rebol> or <dtml-with rebol> where 'rebol' dialectfolder can fhold rebol library I hope this does not seem like I am trying to reinvent Zope. I'm not. But it is clear that Zope can get unneccesarily messy (especially in some hands:-) and despite its excellent concept and power. thoughts? - Jason ------------------------------------------------- Jason Cunliffe <jasonic@nomadicsltd.com> NOMADICS.STUDIO(Design Director) Geo-Digital Arts and Technology Le Vieux Moulin, Route de Mons 83440 SEILLANS, FRANCE Tel: +33 (0)4 94.76.98.72 Fax: +33 (0)4 94.76.97.77