Red is a next-gen programming language, strongly inspired by REBOL. Main features are:
- Human-friendly syntax
- Homoiconic (Red is its own meta-language and own data-format)
- Functional, imperative, reactive and symbolic programming
- Prototype-based object support
- Powerful pattern-matching Macros system
- Rich set of built-in datatypes (50+)
- Both statically and JIT–compiled(*) to native code
- Cross-compilation done right
- Produces executables of less than 1MB, with no dependencies
- Concurrency and parallelism strong support (actors, parallel collections)(*)
- Low-level system programming abilities through the built-in Red/System DSL
- Powerful PEG parser DSL built-in
- Fast, compacting Garbage Collector
- Cross-platform native GUI system, with a UI layout DSL and drawing DSL
- Bridging to the JVM
- High-level scripting and REPL GUI and CLI consoles included
- Visual Studio Code plugin, with many helpful features
- Highly embeddable
- Low memory footprint
- Single-file (~1MB) contains whole toolchain, full standard library and REPL (**)
- No install, no setup
- Fun guaranteed!
(*) Not implemented yet.
(**) Temporarily split in two binaries
Red’s ambitious goal is to build the world’s first full-stack language, a language you can use from system programming tasks, up to high-level scripting through DSL. You’ve probably heard of the term “Full-Stack Developer“. But what is a full-stack Language, exactly?
Other languages talk about having “one tool to rule them all”. Red has that mindset too, pushed to the limit – it’s a single executable that takes in your source files on any platform, and produces a packaged binary for any platform, from any other. The tool doesn’t depend on anything besides what came with your OS…shipping as a single executable that about a megabyte.
But that technical feat alone isn’t enough to define Red’s notion of a “Full-Stack Language”. It’s about the ability to bend and redefine the system to meet any need, while still working with literate code, and getting top-flight performance. So what’s being put in your hands is more like a “language construction set” than simply “a language”. Whether you’re writing a device driver, a platform-native GUI application, or a shared library… Red lets you use a common syntax to code at the right level of abstraction for the task.
It was announced and presented for the first time at ReBorCon 2011 conference (March, 2011). A more recent presentation video was given at the Recode conference in Montreal (July, 2013):
But if you are unable to visit YouTube, here are some slide decks explaining the reasons for building it, showing the main features and the roadmap.
Recode 2013 presentation slides: PDF version.
And for historical purposes, here are some older presentations: