Operating system and language architect Carl Sassenrath has released the next version of the REBOL (Relative Expression Based Object Language). The cross platform language is designed for data exchange and is described as a multi-paradigm dynamic programming language.
Starting out life as a proprietary offering in 1997, REBOL has been directed towards task-specific language dialects and/or the existence of domain-specific languages that may be utilized in processing.
Sassenrath specifies that REBOL is not a traditional computer language and it is therefore not for everyone. "[REBOL] principles emerged over 30 years of language research and development. REBOL takes a different approach; it has different objectives. Most programmers don't get it right away. Some never get it, but those that do gain a new insight into the power a language can provide. They discover a new elegance of expression and computation," he writes.
The language has a free-form syntax and is characterized by its use of "dialecting" and these dialects are used for tasks such as data exchange (load), programming (do), pattern matching (parse), function and object definition (make), as well as GUIs (layout or display).
As a company, REBOL Technologies now provides versions of the language optimized for both servers and GUI work. The code base was open sourced in September of this year as it was decided that this was the "only way" that Sassenrath could guarantee some degree of momentum and renewed interest in the project.
Although it can be used for programming, writing functions, and performing processes, its greatest strength (according to Sassenrath) is its ability to create domain-specific languages or dialects. The REBOL 3 source code is now hosted on the GitHub repository and there are rumors of a future port to Android.
A quick summary of the REBOL Language design objectives includes the following points:
- Clean denotational semantics
- Clean syntax, no keywords, minimal punctuation
- Symbolic programming methods
- Functional language techniques
- Context dependent grammars: dialects, domain-specific languages
- Meta-circular (it's its own meta language)
- Lexically rich: many built-in types and representations