Un interprete Tiny BASIC sul tuo web browser!

Periodicamente, il mio interesse è catturato dagli interpreti BASIC, presenti su praticamente tutti i computer hobbistici e domestici a partire dalla metà degli anni ’70 ed in particolar modo negli anni ’80.
Tra i vari dialetti del BASIC, Tiny BASIC ricopre sicuramente un ruolo molto importante.
Tiny BASIC è stato ideato tra il 1975 e il 1976 e il suo sviluppo come alternativa aperta rispetto al costoso BASIC di Microsoft fu incentivato dalla controvèrsia sulla pirateria informatica, innescata dalla distribuzione non autorizzata di copie dello stesso, denunciata da Bill Gates nella sua Lettera aperta agli hobbisti.
Gli interpreti Tiny BASIC furono rilasciati gratuitamente o commercializzati a basso costo; tra questi, il più famoso è l’interprete implementato da Tom Pittman (Itty Bitty Computers) mediante macchina virtuale, alla cui storia Steven Levy ha dedicato un capitolo del suo Hackers: Gli eroi della rivoluzione informatica. Nel 2006, Tom Pittman rilasciò una versione aggiornata del suo interprete, riscritta in linguaggio C e successivamente Mohan Embar ne effettuò il porting in Java, C# e Flex/Actionscript.

Negli ultimi anni, la tecnologia WebAssembly (Wasm) si sta affermando come standard per lo sviluppo di applicazioni web performanti, realizzate in altri linguaggi oltre a Javascript.
In particolare, appena un mese fa, Microsoft ha rilasciato ufficialmente Blazor WebAssembly, ambiente basato su WebAssembly che consente l’esecuzione di codice .NET direttamente nel browser, senza necessità di installare alcun plugin aggiuntivo.

Lavorando quotidianamente con C#, il rilascio di Blazor WebAssembly ha destato il mio interesse e così ho deciso di coniugare il desiderio di approfondire questa nuova tecnologia con la passione per il retrocomputing, realizzando un ambiente Tiny BASIC contenuto in una pagina web ed eseguito sul browser. Blazor WebAssembly mi ha permesso di includere l’interprete di Mohan Embar senza alcuna modifica al codice sorgente e di realizzare una semplice console per l’I/O e i componenti per caricare ed eseguire alcuni programmi BASIC predefiniti, o altri programmi eventualmente presenti sul proprio computer.


Il risultato di questo progetto è TinyBasicBlazor, il cui codice sorgente è disponibile su GitHub. Per completare l’opera, ho iniziato la conversione di MaN1cPuzzle (versione del Gioco del 15 originariamente implementata in 20 linee di BASIC per ZX Spectrum) in Tiny BASIC e spero di includerla presto tra i programmi di esempio.

Con TinyBasicBlazor, puoi programmare come nel 1976 (ma su un browser moderno)!

Read in English