100% Free Forever
AI-Powered Learning
Industry Expert Content
Certificates & Badges
Learn At Your Own Pace
Programming

Red (language)

AdvancedLanguage12.5K learners

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

Use Cases

Building small, self-contained desktop GUI applications
Writing internal domain-specific languages ('dialects') for specialized problems
Low-level systems and embedded programming via the Red/System dialect
Rapid scripting and prototyping in a Rebol-like, expressive syntax
Exploring homoiconic, code-as-data metaprogramming techniques
Building portable single-executable tools without heavy runtime dependencies

Alternatives

Rebol · Carl SassenrathNimRacket

Frequently Asked Questions