REBOL Programming/About REBOL
REBOL is a highly versatile, multiplatform scripting language for Lightweight Distributed Computing created and maintained by Carl Sassenrath. REBOL stands for Relative Expression-Based Object Language.
It was designed with the aim of being a human-centric, network-based messaging language. It is a first class functional scripting language with automatic memory management, higher order functions, exception handling, and dialecting. It includes many built-in functions that allow you to work with math, text, files, networking, graphics and multimedia.
The emphasis is small code size and small footprint and it has the ability to use a single executable to run your scripts. The scripts can therefore be run from for example a floppy disk or a USB key without installing anything on the host PC. The interpreter is in many cases small enough to reside with your scripts on a single old-fashioned 720K floppy!
REBOL can be used for scripts that are a few lines long and do simple operations and scale up to full size applications.
Operating System Independency at the Source-code Level
REBOL is available for over 40 platforms which largely makes it platform independent. There are variations, though in exactly which products and how many features are available for these platforms.
But the core works the same everywhere, including well integrated network-support. Imagine one- or two-liner scripts that send information to and from remote computers, and you have a small taste of the power and flexibility that REBOL can offer you.
The fact that REBOL code will run on any of the supported platforms without modification even when the code makes use of graphical user interfaces and networking functionality is quite powerful and, frankly, addicting.
Example of the same code on different platforms:
view layout [ text "Hello world!" button "Quit" [unview] ]
REBOL Basic Products
REBOL consists of many products built on top of each other:
- This is the basic version that holds most of the necessary components to run basic REBOL programs. REBOL/Core is command-line centric, and offers quite a bit of power, and - among other things - is ideal for (but not limited to) CGI scripting. This version is freeware and is downloadable from the official REBOL web site.
- Includes extended GUI functionality built on top of REBOL/Core. Adds graphical capabilities and is also freeware. This is the most popular version of REBOL available to anyone. Since version 2.7.6 it handles DLL library access.
- REBOL/View Pro
- Adds further functions to handle DLL library access and encryption. This version costs money and is considered useful for advanced programmers, who want to take advantage of operating system specific functions.
- Adds even more functions to handle SSL access, database, and Fast CGI functions.
REBOL is built this way to let you choose how much functionality is needed. If you don't need graphics, you can settle for REBOL/Core.
It's also built this way to allow newly developed features to be easily built for all products, starting with REBOL/Core.
Each product comes as a single executable file that doesn't need to be installed.
REBOL actually consists of even smaller components, but these are not available as single downloads in their free versions.
Various developer products exist for advanced developers who want the maximum of REBOL for larger application development and deployment in business situations:
- Allows you to create encapsulated programs as executable files.
- REBOL/Command SDK
- The same as REBOL/SDK only using REBOL/Command as base.
Both products give you more control of what you want to include and reveals a finer grained component set that REBOL is built of:
These products are out of the scope of this book.
End User Products
Various enduser products exist that show off what REBOL can do. This book is not intended to do such an advertisement, but two such products are mentioned here:
REBOL/IOS, the REBOL Internet Operating System is a lightweight groupware system made by REBOL Technologies.
AltME is a secure instant messaging system with functions for sharing calendar information, checklists, todo lists and IRC-like chat rooms.