Red (language)
Red is a homoiconic, multi-paradigm programming language descended from Rebol, designed to let developers write both high-level and system-level (bare-metal) code within a single unified toolchain.
Definition
Red is a homoiconic, multi-paradigm programming language descended from Rebol, designed to let developers write both high-level and system-level (bare-metal) code within a single unified toolchain.
Overview
Red was created by Nenad Rakočević and first released in 2011, with the explicit goal of fixing what its designer saw as Rebol's biggest limitation: Rebol was elegant and expressive for high-level scripting but could not be used to build its own interpreter or low-level system tools, forcing reliance on C. Red addresses this by including a low-level dialect called Red/System — a small, C-like language sharing Red's syntax — that is used to implement Red's own compiler and runtime, meaning the entire toolchain is largely self-hosted rather than depending on an external systems language. Like Rebol, Red is homoiconic: source code is represented using Red's own native data structures, so code can be manipulated as data, enabling powerful metaprogramming and the creation of internal domain-specific languages called 'dialects.' Red ships with a rich set of built-in data types (including native support for things like dates, money, tuples, and pairs) and a philosophy of minimizing external dependencies — a full Red compiler and runtime, including GUI capabilities on some platforms, is small enough to fit in a single compact executable. Red targets 'full-stack' development in the sense of spanning from GUI desktop applications down to embedded and bare-metal programming from one language and one small toolchain, distinguishing it from most languages that specialize at only one layer of that stack. Its View subsystem provides a reactive, dialect-based approach to building graphical user interfaces without external UI toolkits. Development has been driven largely by a small open-source community and its creator rather than a corporate sponsor, and Red remains a niche but actively watched project among fans of Rebol-style languages who want that expressiveness extended down to systems programming, rather than a widely adopted mainstream language.
Key Features
- Homoiconic syntax inherited from Rebol — code is represented as native data
- Includes Red/System, a low-level dialect used to self-host the compiler and runtime
- Rich set of native, built-in data types beyond typical primitives
- Support for creating internal domain-specific languages ('dialects')
- Aims to span from GUI application development down to bare-metal programming
- Built-in reactive GUI toolkit (View) without relying on external UI frameworks
- Compact, largely self-contained toolchain with minimal external dependencies