Architettura
Lo stack EWB
Il prodotto e' la VM. EWB e gli altri strumenti esistono per renderne semplice, efficiente e controllabile l'uso.
La VM
La macchina virtuale e' il centro del sistema. Esegue microcodice testuale oppure compresso e gestisce stack, scope, risoluzione delle variabili, dataset condivisi, transazioni, task e thread di pagina.
Il microcodice testuale resta accessibile anche dal linguaggio: una riga EWB che inizia con . viene passata direttamente alla VM. La complessita' utile non viene rimossa; diventa opzionale e resta nascosta finche' non serve.
EWB
EWB e' lo strato che traduce intenzioni compatte nel microcodice della VM. Offre valori senza tipi rigidi, variabili implicitamente strutturate e operatori responsabili dell'interpretazione dei propri argomenti.
a[3]["ciao"] = "7" "7" + "3" -> "10" "aaa" + "3" -> eccezione
I dataset forniscono memoria stabile e condivisa senza esporre SQL come modello mentale obbligatorio. lock e unlock racchiudono operazioni atomiche con commit, rollback ed eccezioni.
Il web server
Il server EWB conserva la semplicita' del modello CGI senza ricaricare necessariamente programma e runtime a ogni richiesta. Un coordinatore distribuisce programma, punto di accesso e stack a un pool di responder, preferendo quello che ha gia' il programma in memoria.
Il programma puo' restare caldo, ma il responder non conserva la sessione applicativa tra le richieste. Gli entry point sono brevi; lo stato da riprendere viaggia nello stack e quello persistente risiede nei dataset. Il pool puo' estendersi su piu' macchine e, in prospettiva, offrire esecuzione remota di codice EWB.
Non vuole essere un super web server generalista. Vuole essere il minimo server capace di servire molto bene la VM. Apache puo' conservare il resto del pianeta, almeno durante la fase di collaudo.
Compatibilita' CGI
ewb_cgi permette ancora di eseguire programmi EWB tramite le CGI tradizionali di Apache o di un server equivalente. E' una via di compatibilita' utile, ma non il percorso consigliato: rinuncia ai responder caldi, all'affinita' del programma e al pool distribuito.
ewIA
ewIA e' uno strato di sviluppo opzionale. Riconosce le istruzioni AI(), raccoglie il contesto necessario e interroga un assistente tecnico. La proposta viene reinserita nel sorgente in forma marcata e commentata e richiede accettazione umana.
L'intelligenza artificiale non e' una dipendenza della VM ne' del programma finale. E' uno strumento che conosce documentazione, regole e memoria del progetto prima di osare mettere mano al codice. Persino nel covo malvagio esiste una procedura di ammissione.
Mai togliere la complessita' se e' utile: renderla opzionale e, quando possibile, nasconderla.