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.

For the differences between REBOL 2 and REBOL 3, as I learn them, I have this work-in-progress page: Transitioning from REBOL 2 to REBOL 3.

A few notes:

Be warned - REBOL can be addictive.

Chat, Q&A.

Carl's Blog

REBOL's creator, Carl Sassenrath, has a blog which focusses on REBOL. Carl's Blog is not updated very often now as he is very busy with other projects but his blog contains useful information.

Here are some "must read" blog entries that focus on the REBOL language:

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 Information and Tips

When learning any language you might have a question that has been answered already. I've gathered a number of posts from the REBOL mailing list, edited them and placed them on these pages. The result is a grab bag of useful tidbits, insights and information.

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:

There's also some other old REBOL/View Tips.

REBOL Script Downloads

Scripts I've posted to REBOL.org

These are newer scripts that I've contributed to the library. Be sure to check their documentation.

My rebsite library

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.

REBOL Scripts

Here are some more REBOL scripts. These tend to be older than those my rebsite library. There may be overlaps too.

REBOL and Notetab

The NoteTab editor is a great text editor. I've created some files here that allow you to get NoteTab to call REBOL for editing tasks. My favourite is using REBOL to tidy my REBOL scripts!

Links to REBOL projects and other sites

REBOL is growing, so there are lots of good sites not listed here. The links below are just some that caught my eye.

Some General sites

Rebol Technologies (http://www.rebol.com)

The home of REBOL. Check it out. If you have a corporate interest be sure to look into REBOL/IOS.

The REBOL Developer Network (http://www.rebol.net/)

REBOL Developer Network. An invaluable resource for developers.

http://www.rebol.org

Contains a growing and functional script library and mailing list message archive.

Project related links

Flash (SWF) Dialect by David Oliva

Oldes has created a REBOL dialect for SWF. Generate SWF files, including compiled Flash action script from REBOL script code. Impressive!

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:

RebDB, REBGui by Dobeash Investments Pty Ltd

Dobeash Investments Pty Ltd creates products based upon REBOL.

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

Both these REBOL scripts can be found in the REBOL.org library.

REBOL based email client by Phil Bevan

Phil Bevan has a REBOL based email client.

In REBOL/View Goto http://www.upnaway.com/~philb/philip/index.r

REBOL Articles by Ladislav Mecir

Ladislav investigates and demonstrates REBOL concepts and capabilities, providing useful scripts along the way. Much of the content is advanced.

Mailing List

See REBOL.org for a searchable archive of the REBOL 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.