Mailing List Archive: 49091 messages
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search

[REBOL] Re: relative expressions

From: greggirwin:mindspring at: 30-Mar-2003 20:47

Hi Brett, BH> I feel that the process of authoring of REBOL scripts and messages is BH> habitually thought of as programming and I wonder if there are other ways to BH> design and think about scripts that more usefully exploit REBOL's BH> flexibility. I agree. I think REBOL development really benefits from separating the requirements (i.e. problem definition) space from the construction aspect. With most development models, you have to translate the problem into some "requirements model" for development and then you have to build the program from those specs, which may have lost or obscured semantic meaning in the translation. REBOL can remove the middle-man. First, think about stating the problem you are solving in terms that fit it best. Next, define a dialect that understands the problem domain. Finally, implement the dialect. This moves us from a model of reusable function libraries and generic components to a model of (potentially) reusable problem definition languages. I can think of lots of reasons this could be a *very* good thing, not the least of which is that if shifts our focus away from code for code's sake . BH> As a start, has anyone got any examples that they feel explain, demonstrate, BH> exploit or point to the benefits/qualities of the "relative expression" BH> concept in REBOL? I wish I had some good examples handy, that were functional. I have ideas sketched out just waiting for the day I win the lottery. :) One example is a screen-layout/hard-copy-report situation. In both cases you're saying "Here's the data I want, and how I want it formatted". One dialect can serve both needs. Another example would be workflow/async process definition. "Send <this-message> to <this-recipient> [at <this-address>]. If no-response within <this-timeframe>, <take-evasive-action. When response arrives, ensure <this-response> is valid, log <this-response>, forward to <this-recipient>, and notify <this-recipient>". -- Gregg