Fundamental distinguishing features of Rebol

Cool! I gave a talk to a small group at a functional programming group in Philadelphia in 2019. I'm afraid I don't have any useful slides, as it was mostly an off-the-cuff demo.

I did have a slide that quoted Greenspun's Tenth Rule :slight_smile:

I used the web console, which you can Ctrl+ and zoom up big to type in demo code, and it has undo/redo/Shift-Enter to edit multiline code.

The new binding should be mainline in time for your talk!

One of its most successful concepts--the one that inspired JSON--is the "it's okay to imply semantics" anti-XML worldview:

Writing interpreted Dialects is truly at the heart of the value proposition. But it hasn't historically been "taught" as a first principle (instead focusing misguidedly on 'things you can do in one line of code' out of the box).

One of my first Rebol experiments was the implementation of USCII. When I revisited the project many years later, it was an example of "seeing the light":

UPARSE is the most evolved dialect in existence, and breaking new ground by proving it can do what it does as usermode code. I think a good demo would be to contrast it with how other languages do parser combinators... the leverage of parts with tags like <here> and <end>, with GROUP!s for code, and string literals or quoted values to match. No one's really put together that comparative study yet... because parser combinators weren't really well-known around the time of Rebol's release (and most Rebol people won't use Haskell or similar, so they act like RegExp is the only competition)

The "Amish Programming" angle... that the deep dependency footprint be small (including compiler, libraries, make tools)... is core to the mission, and can't really be fully separated from the language concepts.

3 Likes