Red è un linguaggio di programmazione di nuova generazione fortemente ispirato a REBOL. Il progetto è stato concepito per offrire una sintassi amichevole per l'essere umano e una struttura omoiconica grazie alla quale è possibile renderlo il proprio metalinguaggio e formato dati.
Caratteristiche di Red per la programmazione
Red supporta paradigmi funzionali, imperativi, reattivi e simbolici, con un sistema di oggetti basato su prototipi e una tipizzazione multipla. Offre inoltre un potente sistema di macro con pattern-matching e un ricco set composto da oltre 50 tipi di dati integrati.
È compilato sia staticamente che tramite JIT in codice nativo, con un supporto per la concorrenza e il parallelismo, inclusi attori e collezioni parallele. Red include anche un linguaggio di programmazione a basso livello chiamato Red/System, un DSL parser PEG integrato, un garbage collector veloce e compatto e un sistema GUI nativo cross-platform con DSL per layout UI.
È altamente integrabile con un'impronta di memoria ridotta. Viene poi distribuito come un singolo file di circa 1MB contenente l'intera toolchain, la libreria standard e la REPL. Senza la necessità di installazione o di configurazione.
Il primo linguaggio full-stack al mondo
L'obiettivo di Red è quello di offrire il primo linguaggio full-stack al mondo. Utilizzabile quindi per task legati alla programmazione di sistema fino allo scripting ad alto livello attraverso DSL. Consente inoltre di scrivere codice a qualsiasi livello di astrazione utilizzando una sintassi comune. Produce eseguibili di meno di 1MB senza dipendenze, con supporto per la cross-compilazione su diverse piattaforme.
Per iniziare a lavorare con Red, è sufficiente scaricarle la console Red per il proprio terminale e avviarla. Non è necessaria alcuna installazione o configurazione. Un semplice programma "Hello World" può essere scritto in questo modo:
print "Hello World!"
Red supporta anche la creazione di GUI native con una sintassi semplice e intuitiva. È possibile compilare i programmi Red in eseguibili standalone senza dipendenze, utilizzando la toolchain disponibile per il download.
Il progetto è attualmente in fase beta e si prevede che raggiunga la versione 1.0 con supporto completo per piattaforme a 64 bit, un sistema di moduli, un modello di concorrenza e, naturalmente, una documentazione completa.