REBOL for Distributed Computing


1. Internet Developer / Technology Group
2. Presentation
3. What is REBOL?
4. History
5. Products
6. Basic Ideas
7. REBOL Distributed Computing Elements
8. Advantages
9. Demo Break
10. Foundation Principles
11. Academic Design Principles
12. Other Features
13. Datatypes
14. Example: Header
15. Example: Data
16. Example: Code
17. Example: Results
18. Common Data Model
19. Common Code Model
20. GUI Dialect Examples
21. Example GUI Effects
22. Demo Examples
23. More Information

1. Internet Developer / Technology Group

17- April-2001

Carl Sassenrath

Creator of REBOL

Founder & CTO, REBOL Technologies

Return to Top

2. Presentation

Quick slide presentation (REBOL code: 3.5 KB)

Introduce REBOL Distributed Computing

Describe the REBOL foundation technology

Show a range of examples and demos


Return to Top

3. What is REBOL?

REBOL = lightweight distributed computing

Simpler, cheaper, smaller network applications

Designed from the start for the Internet

Programs and data span client and server

Runs identically across 42 different systems

A new platform for X-Internet applications

Return to Top

4. History

20 year quest for distributed computing

Hewlett Packard, Apple ATG, Amiga Computer

Operating systems and languages (30+)


REBOL/Core (foundation) around for three years

REBOL/View (GUI + Desktop) just released

About 500,000 in distribution & growing fast

Rapidly gaining international acceptance

Many "Reb Sites" now coming on-line

Return to Top

5. Products

REBOL/Core - Foundation language (free)

REBOL/View - Adds graphical interface (free)

REBOL/View/Pro - Adds encryption, shell, libraries

REBOL/Command - Commercial version

REBOL/Express - Collaborative communications

Return to Top

6. Basic Ideas

Problem: computer-to-computer semantic exchange

REBOL introduces dialect-based distributed computing

Lightweight = Reblets range from 500 bytes to 50 KB

The server, the client, and the message are all REBOL

Dialects (sub-languages) eliminate viruses

Simple things are simple - Like the beginning of the Web

A single ubiquitous model of distributed computing

Return to Top

7. REBOL Distributed Computing Elements

Distributed code model

Common data model

Extensible messaging format

Pervasive Internet protocols

Existing Internet infrastructure

Integrated security

Synchronization, authentication, certification

Offline operation - Dialects, not RPC

Return to Top

8. Advantages

Simpler, cheaper networking applications, e.g. groupware

Greater end-user satisfaction - more interactive

Offline availability - Laptops, handhelds, dialup

Reduces server loading - by a lot: 10 - 50 times

Significantly decreases network traffic

Very quick and easy to download and install

Return to Top

9. Demo Break

(Show a few demos)

Download REBOL/View (360KB) to see the demos.

Return to Top

10. Foundation Principles

Languages lead revolutions... C, HTML, Java, etc.

REBOL: Relative Expression-Based Object Language

Highly expressive & highly productive = Leverage

Simple programs are simple to create

Smooth learning curve from simple to complex

Clean syntax, very little punctuation

Embedded documentation for scripts and functions

Programs run everywhere without modification

Return to Top

11. Academic Design Principles

First class, functional, and symbolic language

Highly polymorphic and higher-order functions

Uses prototype-based object model

Reflective language - Its own meta-language

Easy dialecting for domain specific sub-languages

Rich set of primitive datatypes (more than 40)

Definitional scoping: run-time lexical scoping

Return to Top

12. Other Features

14 Internet Protocols - HTTP, FTP, NNTP, SMTP, POP3

Sandboxes with hard stop security

Built-in compression engine for text and binary

Parser for creating dialects and sublanguages

Refinement paths - generic namespace navigation

DH, DSA, RSA & AES encryption

Server authentication & certification

Downward file synchronization

Auto-expanding series & automatic storage management

Easy exception handling for error recovery

Return to Top

13. Datatypes

More than 40 datatypes built-in:

     integer     1234
     decimal     3.1415 1.23E12 0,01 1,2E12
     money       $123.45  US$123.45  DM$123,45 
     date        30-Nov-2000 2000-11-30 30-Nov-00/8:30
     time        12:34 20:05:32 0:25.34 
     pair        100x200 
     tuple 200.0.0 3.1.5
     string      "string"  {long strings...} 
     binary      #{1A2B3C}  64#{45kLKJOIU8439LKJklj} 
     block       [123 "test"] 
     paren       (123 * 4) 
     path        account/balance match/any USA/CA/Ukiah/size
     tag         <title> <font size="2" color="blue">
     issue       #707-467-8000 #0000-1234-5678-9999 
     file        %names.txt 
     char        #"A" 

     none logic hash list bitset datatype     
     word object image port error event        
     function native op library      
     get-word lit-path lit-word set-path set-word     
Return to Top

14. Example: Header

Start with a REBOL Header:

    REBOL [
        Title:    "REBOL Ale"
        Date:     30-Oct-1998
        File:     %beer.r
        Version:  1.1.0
        Author:   "Carl Sassenrath"
        Purpose:  "A rich, malty, copper brew."
        Category: [misc script beer metric]
        Needs:    [core]
Return to Top

15. Example: Data

Add some REBOL Data:

    Ingredients: [
        0.5 lb. "Toasted malted barley"
        7 lb.   "Amber malt extract"
        1 lb.   "Crystal malt"
        1.5 oz. "Northern brewer hops"
        1 oz.   "Cascade hops"
        1 pkg.  "Ale yeast"
        5 gal.  "Sassenranch water"

    Instructions: {
        After toasting barley to red color (15 minutes), add
        malt extract and brewer hops, then cook 55 minutes.
        Add cascade hops and remove from heat.  Sparge into
        remaining cold water. Add yeast when cool.  Cheers to
        the rebolution!

    Equivalent: [     ; metric conversions
        gal. 3.8  l.
        lb.  0.45 kg.
        oz.  28.3 g.
Return to Top

16. Example: Code

Conversion Code:

    foreach [amount units description] ingredients [
        conversion: find equivalent units
        either conversion [
            print [
                amount * second conversion
                third conversion
            print [amount units description]
Return to Top

17. Example: Results

When you run the above code, you get:

    0.225 kg. Toasted malted barley
    3.15 kg. Amber malt extract
    0.45 kg. Crystal malt
    42.45 g. Northern brewer hops
    28.3 g. Cascade hops
    1 pkg. Ale yeast
    19 l. Sassenranch water
Return to Top

18. Common Data Model

Data is processed, stored, and exchanged as blocks:

    [white red green blue yellow orange black]
    ["Spielberg" "Back to the Future" 1:56:20 MCA]
        "Bill"  #315-555-1234
        "Steve"  #408-555-4321
        "Ted"   #213-555-1010

        "John"  6894  0:55:68
        "Dion"  68861 0:61:35
        "Floyd" 46001 0:50:12
Return to Top

19. Common Code Model

Code also grouped with blocks:

    if time > 6:30 [send "wake up"]
    if now/date = 6-Jun-2001 [
        send "Happy 40th birthday"
    loop 20 [
        wait 8:00
        send read
    sites: [ [save %reb.html data]   [print data]  [send data]
    foreach [site action ] sites [
        data: read site
        do action
Return to Top

20. GUI Dialect Examples

Display a window with a button:

    view layout [button "A Button"]

Show a list of all REBOL words:

    view layout [text-list data sort first system/words]

Another example:

    view layout [
        backdrop %ferns.jpg effect [
                    fit gradcol 1x1 100.0.0 0.0.250]
        banner "Style Examples"
        box red 240x2
        text bold "There are 40 styles built into REBOL."
        button "Great"
        toggle "Press" "Down"
        rotary "Click" "Several" "Times"
        choice "Choose" "Multiple" "Items"
        text-list 120x80 "this is" "a list" "of text"
        check radio radio arrow
        field "Text Entry"
Return to Top

21. Example GUI Effects

Wide range of GIU effects:

    style ferns image 80x60 %ferns.jpg 
    ferns effect [flip 1x1]
    ferns effect [rotate 90]
    ferns effect [reflect 1x1]
    ferns effect [crop 0x50 120x60 fit]
    ferns effect [grayscale]
    ferns effect [invert]
    ferns effect [difference 200.0.0]
    ferns effect [tint 80]
    ferns effect [contrast 50]
    ferns effect [brighten 50]
    ferns effect [sharpen]
    ferns effect [blur]
    ferns effect [colorize 200.0.0]
    ferns effect [gradcol 1x1 150.0.0 0.0.150]
    ferns effect [gradmul 0x1 0.100.0]
    ferns effect [grayscale emboss]
Return to Top

22. Demo Examples

(Show more demos)

Download REBOL/View (360KB) to see the demos.

Return to Top

23. More Information

Visit us at http://WWW.REBOL.COM

"REBOL/Core User Guide" -

"REBOL/Command User Guide" -

"REBOL for Dummies" - IDG Press

"REBOL, The Official Guide" - Osborne McGraw Hill

Return to Top

Copyright REBOL Technologies. All Rights Reserved.
REBOL and the REBOL logo are trademarks of REBOL Technologies.
Generated with Makespec 1.8.15 on 23-Apr-2001 at 13:09:11