Relative Expression Based Object Language (REBOL) is considered to be a data exchange language that can be used on a wide variety of platforms. It was invented by Carl Sassenrath to act as a multi-paradigm dynamic computer programming language. The original purpose was primarily geared toward distributed computing and network communications. It spent 20 years in the development phase before being released in 1997.
REBOL can be used to program server and client applications, multimedia applications and database applications. It is considered to be a both-sided technology because it is an integrated solution for distributed computing and is most effective when it is being run by both the client and the server. REBOL dialects are micro-languages that can be optimized for a particular purpose, such as computer scripting. Users have the ability to redefine their own dialects by reusing existing REBOL words. In many cases, the dialects are considered to be one of the largest strengths of using REBOL.
It is not considered to be a traditional computer language, because it was designed to serve a single, primary purpose. REBOL integrates the underlying concepts of programming languages with meta-data language in order to streamline the exchange and interpretation of information, which can be a problem of distributed computing. When defined technically, it would be considered a meta-circular language because it can act as its own meta language.
There are a variety of different packages from which one can choose, with some targeting beginners and others catering to advanced users. Additionally, each package can be used on a variety of platforms. Along with being a language to represent data and meta, REBOL also creates a consistent architecture for storage, computation and information exchange.
REBOL is a comparatively lightweight platform that can be used for Internet applications. This is largely because it uses a unique architecture to store information as well as manage how it is exchanged and processed. The purpose of this architecture is to ensure that REBOL is small and easy to manage. The use of tiny applications known as reblets is what allows information to be downloaded very quickly. These applications do not require any special libraries to be run, although they still can include hundreds of unique functions and data types. Some of the most robust and complex REBOL applications still manage to remain 10-30 kilobytes (KB) apiece.