Programming with REBOL

Introduction

REBOL can be a very productive language but like all languages you will find it useful for some things but not others.
Learning REBOL is a very worthwhile experience, the benefits of REBOL can not be counted only by what is produced, but also in how
you think after you have learnt it.

It is early days for REBOL as an open sourced language. There is a small, but enthusiastic and growing community which has a lot of work to do.

It's worth mentioning here the RED Programming Language a compiled REBOL inspired language. I haven't yet investigated
RED but I'm excited at it's goals and would love to see it maintain and extend it's close ties with REBOL.

REBOL 2 vs REBOL 3

People will talk about REBOL 2, REBOL 3 and maybe even REBOL 1 occasionally. These refer to the major phases in the design and
behaviour of the REBOL language. REBOL 2 was redesigned based on what was learnt from REBOL 1 and has found it's way into commercial production systems.
REBOL 3 was redesigned based on the significant experience with REBOL 2. REBOL 3 was open sourced.

Much of this site was written with reference to REBOL 2 (including elements on this page). In time I will reorganise aspects of this site to reflect the reality that the open sourced REBOL is the future, while recognising that there will
be plenty of REBOL 2 production scripts out there that may still need support.

If you are new to REBOL pick up a REBOL 3 interpreter and go from there.

REBOL 3 calls itself an alpha, some think of it as at a beta level. It is being used regularly - have a chat to @RebolBot in the REBOL and RED room of Stack overflow (see below).

Documentation for REBOL 3 is fractured and incomplete and will require significant work, but that work has started, the community is helpful and lot's of REBOL 2 documentation applies to REBOL 3.

REBOL 2 interpreters are closed source and will not be updated but there are free downloads and they are reliable - See REBOL 2 Downloads

Along with these REBOL pages there is a REBOL 2 "rebsite" for REBOL 2 /View users which contains other REBOL scripts,
demonstrations and documentation. In REBOL/View find it in the sites folder under the name "Code C.".

Be warned - REBOL can be addictive.

Chat, Q&A.

Rebol [and Red] Stackoverflow Chat Room. People new to REBOL are welcome and encouraged to join in. Note that stackoverflow has rules that
require 20 reputation points before you can chat. Getting these points is easy, just ask or answer legitimate REBOL questions on Stackoverfow, REBOL chat users will see them and upvote
your work which will get you your points. Be aware that there is a delay (usually 30 minutes, sometimes longer) before reputation points are recognised on the chat system.

Learning REBOL

Start with the REBOL /Core documentation and try writing
some simple scripts. The trick to getting most from the
documentation is taking it at face value. The reference
documentation is written in a succinct style,
like REBOL itself. Make sure you look into
the tutorials and examples on the REBOL Developer Network
(see link below) - especially the cookbook. Also, check out the tips
and techniques part of this site while learning.

For /View try out the demos from the desktop - note that
it downloads on demand (first time). Have a peek at the
code for the demos - you will find the scripts are pretty
small.

With learning any new language expect a learning curve. Same for
REBOL, but you can do some useful things in REBOL without needing to learn a lot.
Getting a nuanced view of REBOL takes more time - unlearning some assumptions!

Articles

REBOL Concepts is my introduction to some of the concepts of REBOL as I understand them.
I hope that it will complement but not contradict the official REBOL documentation.

The REBOL programming language makes the X-Internet (executable internet) feasible, but no language let's you ignore security issues.
This introductory article presents a few security issues related to executing content received from other machines.

If you want to get into the details of REBOL/View you'll need to poke around "under the hood" a bit. I've done a bit of this in the past and I'll need to
update some of my notes in the light of the View 1.3 release so don't be suprised to find stuff that is now wrong but for those who want some info it still could be handy. Interactive version of these are available on my rebsite - the location of which is in the square brackets:

REBOL Script Downloads

These scripts are the same as that found in my "rebsite" which can be accessed using
REBOL/View. Open REBOL/View (which is free for personal use), click on the Rebol.com folder,
click on the "Sites" icon and then finally the "Code C." icon which represents my rebsite.

Project related links

PDF Maker by Gabriele Santilli

Gabriele has created a dialect to emit PDF documents. The files are available
on his rebsite "Rebol.it". Use REBOL/View to access the rebsite.

XML Parser by Gavin F. McKenzie

Gavin a beefed up customisable XML parser for REBOL. Then he went on to create a tool that produces an object
model to represent the XML. The nice thing is you can use REBOL paths to
access the elements and content. Gavin's original site is down, but the scripts can be found on REBOL.org here:

REBOL/Base Pseudo-Relational Database: A means of storing and accessing a large amount of data in a timely fashion;
accessing this data directly from a script-based language;
and an implementation that feels and acts like part of the language [REBOL], yet is not alien from what people are used to [SQL].

REBOL/View Graphical User Interface: RebGUI is a lightweight alternative to VID that was designed and built from the ground-up on top of REBOL/View.

Quick Plot Dialect (q-plot) by Matt Licholai

Quick Plot Dialect (q-plot.r) is an easy to use dialect to simplify
displaying 2D plots within REBOL/View. Along with q-plot Matt had
included a great interactive tutorial for the dialect called
ez-plot.r

Mailing List

Dialects

REBOL promotes the use of Dialects. Another name for them is "Mini-Languages". Yet another is "Domain Specific Languages".
Multiple dialects are used in REBOL. You'll be using them before you realise it and
you can create your own. This page contains links to dialects that people have created
to solve certain problems in a flexible way.