BASIC: il linguaggio per (o di?) tutti

Le origini

4Nei primi anni del decennio 1960 lo sviluppo di programmi per gli allora grandi e costosi calcolatori (definiti mainframe) avveniva normalmente in modalità “batch“:

  • il programmatore scriveva a mano le istruzioni del programma su un modulo
  • il programmatore perforava le schede (le “famose” schede cartacee, normalmente IBM a 80 colonne) tramite l’utilizzo di apposite macchine elettromeccaniche chiamate perforatrici (previo attesa che una di queste scarse risorse fosse disponibile)
  • il programmatore consegnava il pacco ad uno sportello presso il “centro di calcolo”
  • operatori specializzati, gli unici ad avere accesso al grande calcolatore (che veniva definito mainframe) caricavano le schede sull’apposito lettore del mainframe
  • le schede venivano lette nell’ordine di caricamento (da qui il termine batch, a lotti), e l’esecuzione del programma produceva normalmente tabulati su grandi moduli in formato 132 colonne
  • tabulati e schede venivano riconsegnati allo sportello ore (o giorni) dopo
  • corretti i (frequenti) errori, il processo si ripeteva

Il “privilegio” di accedere a questo scomodo utilizzo era inoltre appannaggio di pochi utenti qualificati, con buone competenze di programmazione, appartenenti ad enti in grado di sostenere gli alti costi delle apparecchiature: università, grandi enti o aziende.

Una soluzione a questa situazione emerse verso la metà del decennio, con l’avvento di un approccio progettuale innovativo, definito come “Time-Sharing“, che permetteva a molti utenti la condivisione dell’accesso remoto interattivo ad una unica macchina, tramite terminali (inizialmente tipo telescriventi e poi video-tastiera). Questo snelliva le difficoltà logistiche di accesso e utilizzo, ma comunque richiedeva una buona conoscenza dei linguaggi di programmazione allora disponibili: oltre al linguaggio assember (specifico per ogni macchina, il più difficile da utilizzare), i maggiormente diffusi erano il FORTRAN (per le applicazioni di natura scientifica) e il COBOL (per quelle gestionali).


Fra i vari progetti Time-Sharing avviati nel decennio, quello più conosciuto è stato il Dartmouth Time-Sharing System (DTSS), sviluppato al Dartmouth College di Hanover, New Hampshire, USA. Il progetto fu sviluppato su iniziativa di Tom Kurtz, direttore del Dipartimento di Matematica, coadiuvato dal prof. John Kemeny.
Il professor Kurtz era convinto che fosse necessario rendere accessibili gli strumenti informatici a tutti gli studenti del college, anche a quelli delle discipline umanistiche.

Egli sosteneva “indipendentemente dal fatto che uno studente utilizzerà o meno una calcolatore, è probabile che la sua vita sarà influenzata da tali macchine e, quindi, dovrebbe sapere qualcosa sulle loro capacità e limiti. In questo senso, il contatto con i cervelli elettronici è essenziale quanto imparare a usare la biblioteca”.

Kurtz era quindi convinto che fosse necessario sviluppare sia un sistema operativo time-sharing, sia un linguaggio intuitivo, flessibile, molto facile da apprendere e da utilizzare, anche per gli utenti completamente privi di conoscenze informatiche.

Nelle valutazioni sulla fattibilità e gli obiettivi della proposta di Kurtz, durante l’anno accademico 1962-63, forte era il timore che fosse inopportuno sviluppare un nuovo linguaggio, con il rischio che finisse per essere utilizzato solo dagli studenti di Dartmouth, mentre altri linguaggi come il FORTRAN o l’Algol avevano già i presupposti per affermarsi come standard di riferimento. Ma Kurtz riuscì a far approvare il suo progetto ed ottenere il supporto finanziario da parte della NSF (National Science Foundation), e con la supervisione di John Kemedy e il contributo di una dozzina di studenti iniziò lo sviluppo, prima del sistema time-sharing, poi del linguaggio che fu chiamato BASIC (Beginners’ All-purpose Symbolic Instruction Code).

Il giorno 1 maggio 1964 si raggiunse un primo risultato: lo stesso programma BASIC poteva essere eseguito su due terminali contemporaneamente. Il sistema, poi ampliato e potenziato, venne utilizzato e apprezzato non solo dagli studenti, ma anche dal corpo docente e dai ricercatori. A regime, supportava l’utilizzo contemporaneo nel campus di 30-40 utenti contemporanei, funzionando per 16 ore al giorno, 7 giorni su 7. Reso disponibile gratuitamente come progetto di ricerca, divenne poi disponibile su varie macchine di costruttori diversi, e utilizzato da varie scuole, università, aziende commerciali di servizi time-sharing, e da aziende industriali e di ingegneria.


I minicomputer

Una “fortuita” coincidenza temporale favorì la diffusione iniziale del BASIC: proprio nell’anno della sua nascita (1965), veniva lanciato dalla DEC (Digital Equipment Corporation) il PDP-8, un modello che ebbe grande successo, “prototipo” di una nuova generazione di macchine di piccola dimensione, chiamate minicomputer”. Queste erano progettate con criteri innovativi (usavano i circuiti integrati), erano di piccole dimensioni, quindi utilizzabili in uffici, laboratori, ambienti scolastici; erano ben documentate, quindi utilizzabili senza personale specializzato, e sopratutto enormemente più economiche dei grandi mainframe. Per inciso, sempre nel 1965 venne annunciato il Sistema /360, il “capostipite” di una famiglia di mainframe IBM destinata a riscuotere molto successo.


I minicomputer rappresentarono il primo passo verso la “democratizzazione” dell’informatica, ed il BASIC era il linguaggio che ne favorì la diffusione presso nuove fasce di utenti, non specialisti di informatica ma interessati a risolvere problemi nei settori più disparati, dalla medicina, alle attività gestionali, all’automazione, alla didattica. O magari al semplice svago, tramite la scrittura di giochi.


Anche la libera disponibilità del BASIC ne favorì l’ampia diffusione sui minicomputer prodotti delle numerose aziende che erano rapidamente sorte in quegli anni; la più nota di queste, la Digital Equipment Corporation (DEC), agli inizi degli anni 1970 aveva lanciato un nuovo modello, il PDP-10, sul quale un giovane studente liceale, Bill Gates, appassionato di informatica sin dall’età di 13 anni, aveva maturato una buona esperienza nell’uso proprio del linguaggio BASIC.

Nel 1973 era stato pubblicato un libro, “101 BASIC Computer Games“, che riportava i listati di programmi BASIC scritti per le macchine DEC. Questa pubblicazione, di grande successo, avrà un importante ruolo nella divulgazione delle potenzialità del linguaggio; nei primi anni ’80 sarà il primo libro di informatica a superare il milione di copie.


I computer personali

Il lancio da parte di Intel del microprocessore a 8 bit 8080, in aprile 1974, si può considerare come l’evento che ha dato origine all’era dei computer personali. Fu infatti grazie all’intuito di alcuni imprenditori che seppero intuire il potenziale di questo prodotto, oltre a quanto la stessa Intel avesse previsto, che l’8080 fu utilizzato per realizzare prodotti commerciali destinati agli utenti finali: macchine che per costo, dimensioni e facilità d’uso potessero essere usate anche da utenti privati. Oppure, per una azienda o un professionista, considerati come una versione ridotta di un minicomputer.

Ai fini delle implicazioni relative alla diffusione del linguaggio BASIC è di particolare rilevanza la vicenda dell’Altair 8800. Fra i primi imprenditori “visionari”, Ed Roberts, titolare di una piccola azienda di elettronica, la Micro Instrumentation & Telemetry Systems Inc. (MITS), aveva sviluppato un prodotto in scatola di montaggio per una tipologia di utenti allora molto popolare, quello degli hobbisti, appassionati dell’autocostruzione di apparecchiature elettroniche.

L’Altair 8800 venne presentato con due articoli sui numeri di gennaio e febbraio 1975 della rivista Popular Electronics, rivolta appunto a questo mercato.

La versione in kit di base, offerta con spedizione via mail a 439$, comprendeva i componenti, la memoria di 256 byte, il contenitore, l’alimentatore e le istruzioni di montaggio. Ma non il software, inesistente. La macchina poteva inizialmente essere utilizzata solo tramite gli interruttori e le luci sulla console, era pertanto praticamente inutilizzabile. Ciononostante, l’effetto degli articoli fu dirompente: il prezzo allettante e l’idea di possedere un computer entusiasmarono i lettori; a maggio 1975 erano arrivati ordini per 5000 unità, ben al di sopra delle aspettative iniziali di vendita di Ed Roberts, di qualche centinaio di unità.


Microsoft BASIC

Due amici (erano stati compagni di scuola al liceo “Lakeside” di Seattle), Bill Gates e Paul Allen, appassionati di elettronica e programmazione, con precedenti esperienze sull’uso dei grandi calcolatori, sviluppo di programmi e linguaggio BASIC (oggi li definiremmo “nerd”), letto il primo articolo sull’Altair 8800 (in edicola la settimana prima di Natale 1974) decisero di contattare immediatamente Ed Roberts per offrirgli un interprete (un programma per tradurre le istruzioni del linguaggio BASIC in istruzioni in linguaggio macchina) che permettesse ad utenti non specialisti di hardware di scrivere programmi in linguaggio BASIC per l’Altair 8800.

Fu Gates, dalla sua stanza al college di Harward dove studiava, a chiamare al telefono Ed Roberts, qualificandosi come appartenete all’azienda “Traf-O-Data” (la piccola azienda di Bill e Paul fondata per la produzione di apparati per il controllo del traffico automobilistico). Roberts, che aveva disperato bisogno di un prodotto simile, disse che molti gli avevano offerto qualcosa di simile (affermazione mai verificata) e che il primo che si fosse presentato a lui (la MITS era localizzata ad Albuquerque, New mexico) con qualcosa di funzionante avrebbe ottenuto la commessa.

Seguirono due mesi di intensa attività diurna e notturna per Allen e Gates, durante i quali, senza mai aver visto una macchina Altair nè il microprocessore Intel 8080, ma solo basandosi sulle informazioni desunte da un manuale (scritto da Adam Osborne, che diventerà uno dei protagonisti dell’era del personal computing) appositamente acquistato, i due riuscirono a “simulare” su un minicomputer DEC PDP-10 della università di Harvard il funzionamento del microprocessore Intel. La difficoltà tecnica che più impegnò Bill Gates fu la necessità di ottimizzare il codice per ridurre l’occupazione di memoria dell’ interprete a meno di 4K, la massima configurazione di memoria RAM disponibile sull’Altair, e per lasciare spazio anche ai programmi dell’utente. Il solo contributo esterno fu quello di Monte Davidoff, un programmatore che scrisse le routines per la gestione dei numeri in virgola mobile.

Completato lo sviluppo, fu compito di Paul Allen (allora aveva 22 anni, 2 più di Bill Gates) volare in New Mexico con un nastro di carta per telescrivente su cui era memorizzato l’interprete BASIC.

Incredibilmente, la dimostrazione funzionò al primo avvio. In sintesi, Allen fu assunto in MITS come Direttore del software, Gates abbandonò gli studi ad Harvard e si trasferì ad Albuquerque, i due fondarono la Micro-Soft (con sede ad Albuquerque), che firmò un contratto con la MITS che prevedeva un pagamento di royalties (fra 30 e 60 $ per copia, in base alla versione) per ogni copia di BASIC venduta dalla MITS, con un impegno complessivo di acquisto licenze per un valore di 180.000$.

Avendo fornito il BASIC con licenza non esclusiva, la Micro-Soft poteva venderlo alle altre aziende che stavano rapidamente entrando nel fervente nuovo settore dei personal computer: ad inizio 1979 l’azienda ha 19 dipendenti e fattura (con le sole licenze del BASIC) 2,5 Milioni di $; dopo il trasferimento a Seattle amplierà l’offerta con altri linguaggi, fino al 1981, data nella quale grazie ad un accordo con IBM inizierà a vendere il sistema operativo MS-DOS.


Homebrew Computer Club


Quasi in contemporanea con l’annuncio dell’Altair, un altro evento si rivelerà importante per il futuro del BASIC e più in generale per le prospettive del futuro mercato del software. A marzo del 1975 si tenne a Menlo Park in California la prima riunione dello “Homebrew Computer Club“, un gruppo di hobbisti appassionati di computer, il cui obiettivo era il libero scambio di informazioni tecniche sul nuovo mondo dei “piccoli” computer.

L’Altair 8800 fu immediatamente fra i principali argomenti di discussione, e nella riunione di giugno1975 un nastro con una versione preliminare del BASIC scomparve, per riapparire alla successiva riunione insieme a 50 copie che furono liberamente distribuite ai partecipanti.
Questo suscitò una netta reazione da parte di Ed Roberts, che scrisse “Anyone who is using a stolen copy of MITS BASIC should identify himself for what he is, a thief.Anche Bill Gates espresse con una lettera la sua posizione, spiegando che la copia non autorizzata toglieva risorse allo sviluppo di nuovo software, penalizzandone quindi le future possibilità di espansione.


La chiara presa di posizione di Bill Gates, espressa nel momento storico della nascita di una nuova professione e di un nuovo potenziale mercato (la cui rilevanza ancora non era prevedibile) influenzerà in maniera determinante il futuro del software nei decenni successivi.


Per evitare problemi, alcuni componenti del Club (Bob Albrecht, che aveva portato l’Altair 8800 al Club, e Dennis Allison) promossero la pubblicazione delle specifiche di un linguaggio chiamato Tiny BASIC, invitando poi tutti gli hobbisti a produrre implementazioni di queste, da distribuire liberamente senza costi. Queste implementazioni sarebbero state pubblicate su una nuova pubblicazione dedicata agli hobbisti, dal nome originale “Dr. dobb’s journal of Tiny BASIC Calisthenics & Orthodontia“, noto poi semplicemente come “dr. dobb’s journal“.

L’editore scelto da Albrecht per dirigere la rivista fu Jim Warren, che nel primo editoriale specificò come la rivista avrebbe trattato del “free and very inexpensive software”: negli anni Dr. Dobbs divenne un punto di riferimento per l’intero settore del software per micro e personal computer.
Numerosi sviluppatori accolsero l’invito di Albrecht e Allison, e nel giro di un anno numerose implementazioni del Tiny BASIC vennero prodotte e distribuite, non solo per il processore 8080 Intel, ma anche per altri a 8 o 16 bit che iniziavano ad essere utilizzati da vari costruttori per realizzare personal computer: MOS Technology 6502, Motorola 6800.


Apple BASIC

Steve Wozniac come impiegato alla HP aveva avuto accesso al BASIC HP disponibile sull’ HP 9830. Quando partecipò alle prime riunioni dell’Homebrew Computer Club decise che avrebbe costruito una sua macchina utilizzando il nuovo microprocessore 6502 della MOS Technology. Sulla base del già citato libro libro “101 BASIC Computer Games” e dei manuali HP sviluppò quello che lui definiva “GAME BASIC”, perchè rivolto ai giochi e per utilizzo educativo. L’11 aprile 1976 Steve Wozniak e l’amico Steve Jobs annunciarono questa macchina come Apple I, con il BASIC di Wozniac che venne chiamato Integer BASIC, che veniva caricato sull’Apple I da un registratore a cassetta.


Nel 1977 sull’Apple II venne lanciato l’Applesoft BASIC, licenziato da Microsoft che già aveva sviluppato una versione per il microprocessore 6502, ma modificato da Apple; questo sostituì l’Integer BASIC.


BASIC-E, CBASIC

Nei primi anni dell’industria del personal computer l’unico sistema operativo largamente diffuso era il CP/M, della Digital Research; il suo fondatore, Gary Kildall, era anche professore alla Naval Postgraduate school di Pacific Grove, California. Quando Gordon Eubanks, un suo studente, lo contattò per avere idee su possibili tesi di laurea, Kildall gli propose di completare e migliorare lo sviluppo di un interprete BASIC da lui già iniziato. Il risultato prodotto da Eubanks, chiamato BASIC-E, aveva la peculiarità di generare un codice intermedio, indipendente dal processore effettivamente utilizzato: questo codice, al momento dell’esecuzione, veniva poi “tradotto” da un altro programma nel vero e proprio linguaggio macchina.

Questo approccio presentava due vantaggi:

  • il codice intermedio non era “leggibile” da un umano, evitando quindi la necessità di distribuire il prezioso codice sorgente scritto in linguaggio BASIC-E
  • sempificava l’implementazione del linguaggio su una nuova architettura hardware: sarebbe stato sufficente solo produrre un nuovo “traduttore” specifico per quell’hardware.

Alla data Eubanks non era particolarmente interessato a trarre vantaggi economici dal suo sviluppo. Quando l’azienda IMSAI, un competitor con un clone dell’Altair, gli chiese una offerta per il BASIC-E, Eubanks concesse una licenza di distribuzione illimitata, accontentandosi di ricevere una delle loro macchine (e una stampante!).

Successivamente Eubanks sviluppò una nuova versione del linguaggio, ampliata e adatta sopratutto ad applicazioni commerciali, chiamandola CBASIC; per la sua commercializzazione fondò una propria azienda, la “Compiler Systems”, che nel 1981 fu acquistata dalla Digital Research.

Il linguaggio onnipresente

La storia delle prime evoluzioni del BASIC, unitamente alle sue origini come “linguaggio per non esperti”, aiuta a capire come questo sia sempre stato considerato poco potente, usato da hobbisti, insomma un linguaggio di seconda categoria. Spesso considerato “pericoloso” per la formazione del vero programmatore, a causa del rischio di indurre ad un modo di ragionare privo di rigore logico.


La realtà è che comunque dalla nascita dei”piccoli” ( o personal) computer, quelli che sin dalla fine degli anni 70 sono entati nelle case di milioni di famiglie, il BASIC, in una delle sue numerose varianti, sopratutto per il supporto alle diverse caratteristiche della grafica, è stato disponibile su tutte le piccole macchine dell’epoca. Spesso, precaricato perchè scritto nella ROM della macchina, è stato sinonimo di “sistema operativo”: alla sua accensione, immediatamente, sullo schermo nero appariva un cursore, ad indicare che il computer era pronto ad accettare comandi (da qui il termine “prompt dei comandi“). Sulle numerose riviste di settore allora pubblicate apparivano pagine di istruzioni di programmi in BASIC (accompagnate spesso da un dischetto e successivamente CD-ROM) relativi a calcoli matematici, gestione di piccoli archivi, e naturalmente giochi.
Per molti oggi adulti, è stato l’unica occasione di toccare con mano e sperimentare un linguaggio di programmazione. Magari, anche per allenare il cervello..

Ad oggi (2022), il linguaggio BASIC è ancora presente fra i linguaggi previsti nell’ambiente di sviluppo software “Microsoft Visual Studio“, nella versione “Visual Basic.NET” lanciata nel 2002, insieme ai linguaggi “C sharp“, “C++“, “J sharp“.


Alcune implementazioni del linguaggio BASIC

Come esempio dell’ampia diffusione sin dalle origini del linguaggio BASIC vengono qui elencate in ordine alfabetico alcune delle più importante implementazioni negli anni, con rimando alle rispettive pagine di Wikipedia per i dettagli:


Fonti:

error: