Il rosso è stato descritto dagli sviluppatori come il primo linguaggio di programmazione full-stack. Lo stack rosso è costituito da due livelli principali, il linguaggio rosso di alto livello e un DSL di livello inferiore chiamato rosso/sistema, per i sistemi di programmazione e i driver di dispositivo). Il linguaggio di alto livello sarà molto simile a Rebol2 (circa il 95% compatibile con i sorgenti), quindi la documentazione di Rebol può essere utilizzata anche per imparare Red. Secondo la documentazione di Red, Red/System è simile al linguaggio di programmazione C, ma è integrato nella struttura lessicale di Rebol.
Il rosso è il linguaggio omoiconico. (Si dice che un linguaggio è omoiconico se un programma scritto in quel linguaggio può essere trattato come dati utilizzando il linguaggio, e quindi la rappresentazione interna del programma può essere dedotta semplicemente leggendo il programma stesso. Questa proprietà è spesso riassunta dicendo che il linguaggio tratta il codice come dati.) Secondo la documentazione di Red, le caratteristiche principali del linguaggio sono le seguenti:
- Installazione facile da usare
- omoiconico (il rosso è il suo linguaggio metallico e i dati delle coordinate);
- supporto per la programmazione funzionale, imperativa, interattiva e simbolica;
- supporto per oggetti di basso nei prototipi;
- multipagina.
- potente sistema macro per la ricerca di pattern;
- ricco set di tipi di dati incorporati (più di 50);
- Compilazione statica e JIT in codice nativo (caratteristica non ancora implementata);
- supporto per la traduzione incrociata;
- Red produce eseguibili inferiori a 1 MB, senza dipendenze;
- Forte supporto per la concorrenza e il parallelismo (attori, gruppi paralleli) (la funzione non è stata ancora implementata);
- Funzionalità di programmazione di sistema di basso livello con un sistema/sistema DSL Red integrato;
- Potente analizzatore DSL PEG integrato;
- raccoglitore di rifiuti veloce e compatto;
- Sistema GUI multipiattaforma nativo, con layout dell’interfaccia utente grafica DSL e DSL;
- Gateway JVM;
- scripting di alto livello, REPL GUI e console CLI;
- Plugin di Visual Studio Code con molte funzioni utili;
- Molto integrazione
- Impronta di memoria bassa
- Un file (~1 MB) contiene l’intera toolchain, la libreria standard completa e un REPL (temporaneamente diviso in due binari);
- Nessuna installazione, nessuna configurazione.
Red è stato annunciato e presentato per la prima volta nei Paesi Bassi nel febbraio 2011 alla Rebol & Boron Conference (ReBorCon) dal suo creatore Nenad Rakocević. Nel settembre 2011, il linguaggio di programmazione Red è stato presentato a un pubblico più ampio al Software Freedom Day 2011. Rakočević è uno sviluppatore di lunga data di Rebol, meglio conosciuto come il creatore del server HTTP Cheyenne. Come il linguaggio Rebol da cui è stato ispirato, Red supporta la programmazione descrittiva e i linguaggi specifici del dominio (DSL) e, secondo il suo creatore, Red è uno strumento molto potente per la creazione di DSL integrati (“Dialection”).
Red affronta la complessità della creazione di software utilizzando un approccio orientato ai servizi DSL (l’autore li chiama dialetti). Pertanto, Red ha la propria toolchain multipiattaforma, inclusi assembler, compilatore nativo, interprete e linker, e non si basa su librerie di terze parti ad eccezione del compilatore Rebol2, richiesto durante la fase alpha. Secondo l’autore, una volta raggiunta la versione 1.0, Red verrà ospitato automaticamente. Attualmente, il rosso è ancora in alfa e solo a 32 bit. I seguenti dialetti sono stati uniti:
- rosso / sistema : un linguaggio di programmazione per sistemi di livello C compilato in codice nativo;
- analisi : un potente parser PEG.
- In : un semplice dialetto per creare interfacce grafiche;
- Lui dipinge : dialetto grafico vettoriale bidimensionale;
- testo ricco : descrizione accentata di rich text.
In un post sul blog pubblicato a luglio dello scorso anno, il team di sviluppo del linguaggio ha parlato degli sforzi per arrivare a Red 1.0. Il team ha detto: Non puoi perderti che negli ultimi mesi (e anche negli ultimi anni), i nostri progressi complessivi sono rallentati drasticamente. Uno dei motivi principali è che disperdiamo le nostre risorse limitate per raggiungere vari obiettivi mentre facciamo pochi progressi sul nucleo della lingua. Questo non è affatto soddisfacente e molto probabilmente ci porterà a un vicolo cieco perché stiamo finendo i soldi.
D’ora in poi, la nostra unica preoccupazione sarà finalizzare il linguaggio di base e portarlo alla tanto attesa versione 1.0. Dobbiamo arrivare a questo punto per avviare un’adozione più ampia e fornire a noi stessi e ai nostri utenti una solida base su cui costruire prodotti e servizi aziendali necessari per la sostenibilità. Data la complessità di completare il linguaggio e ottenere un’applicazione che può essere eseguita su moderne piattaforme a 64 bit, abbiamo elaborato un piano in due fasi”.
Questo piano in due passaggi include l’aggiornamento a un’implementazione a 32 bit di Red e un’implementazione self-hosted a 64 bit. Riguardo all’aggiornamento della versione a 32 bit del linguaggio, il team ha scritto: Ora è il momento di farlo per ripulire alcune regole semantiche e affrontare tutti i possibili scenari, che ci aiuteranno a raggiungere i nostri obiettivi di robustezza e stabilità di esecuzione. La scrittura di una specifica completa del linguaggio rinuncerà ad alcune funzionalità attualmente disponibili che sono risultate problematiche o incoerenti.
D’altra parte, potremmo aggiungere nuove funzionalità che dovrai implementare per la versione 1.0, ha aggiunto. E per quanto riguarda la transizione a 64 bit, dice: Per passare a 64 bit, dobbiamo abbandonare completamente il codice della toolchain esistente basato su Rebol2 e riscriverlo con un’architettura più recente nello stesso colore rosso. Il token della toolchain esistente era comunque usa e getta e non era destinato a vivere così a lungo, quindi era qualcosa che dovevamo prendere comunque per 1.0.
fonti : rossoE pagina rossa de github
E tu?
Cosa ne pensi del linguaggio di programmazione rosso?
Cosa ne pensi delle caratteristiche di Red? Riuscirà a vincere?
Cosa ne pensi dei piani dell’autore per rendere Red un linguaggio stack completo?
Red può essere un efficace sostituto di linguaggi come C, Java, JavaScript e Python?
Vedi oltre
Adi Osmani afferma che un buon codice è come una lettera d’amore al prossimo sviluppatore che lo manterrà. Un ingegnere di Google mostra le somiglianze tra i due
Il tempo perso dagli sviluppatori costerà alle aziende miliardi, uno spreco stimato in 12,97 miliardi di dollari all’anno.