ArcheoinformaticaBasicCompilatoriDidatticaFormazioneHome ComputerIntervisteLinguaggio di programmazionemicroprocessoriMicrosoftMS-DOSMSXPersonaggiPodcastProgrammazioneRetrocomputerRetroprogrammer's CornerRicerca & sviluppoSoftwareUniversitàZX Spectrum

[Podcast] 4×02: Basic, programmazione e comunicazione basica

Nuova puntata del podcast di Archeologia Informatica.
La stessa squadra, Simone Pizzi in console, Carlo Santagostino ed il sottoscritto, Stefano Paganini, hanno trascorso un bel po’ di tempo a parlare del Basic, forse uno dei più noti, semplici (?), utilizzati linguaggi di programmazione di sempre.

Ascolta “AI 4×02: La Comunicazione Basica” su Spreaker.

Il Basic.
Per i puristi: programmazione pura NON strutturata e l’odiato GO TO,
per i più: la palestra sulla quale TUTTI hanno fatto i primi “PRINT “hello world””,
per alcuni: il punto di partenza necessario per poi passare al linguaggio macchina.

Per molti di noi, tornare al Basic significa tornare alle origini, tornare agli home e personal computer che hanno caratterizzato i nostri primi passi nel mondo dell’informatica.
Se si escludono pochi eletti che sono passati direttamente all’Assembler di qualche processore o a linguaggi di alto lignaggio come Cobol e Fortran, la stra-grande maggioranza degli utenti è legata alla prima PRINT in modo indissolubile.
Nondimeno, proprio per il suo legame con home e personal computer della prima ora, il BASIC è stato (erroneamente) considerato un linguaggio semplice,

La nascita del BASIC

Nella puntata abbiamo cercato di inquadrare il contesto in cui è nato il Basic, la metà degli anni ’60, dominata da elaboratori di seconda generazione (pur sempre mastodontici e dai costi proibitivi); un contesto in cui l’università di Dartmouth, nel tranquillo e verdissimo New Hampshire, ha dato luogo ad una delle più importanti fasi dell’informatica moderna.

Il Basic è stato ideato dai professori John George Kemeny e Thomas Eugene Kurtz all’interno di un più ampio progetto di informatizzazione del College anche per studenti di materie non scientifiche e tecniche.
Abbiamo cercato di ripercorrere la nascita del DTSS, il Dartmouth Time Sharing System, uno dei primi sistemi di Time Sharing, che consentiva l’uso contemporaneo delle (costosissime e rare) risorse informatiche ad un numero ampio di persone.
All’interno di questo sistema operativo potevano venire utilizzati sia interpreti Fortran, Cobol e Algol (le star del tempo) oltre, naturalmente, al Basic – che era stato sviluppato in questo contesto.

Il progetto fu decisamente un successo: entro il 1968, l’80% degli iscritti al college aveva avuto la possibilità di utilizzare un computer con costanza e far parte del programma di informatizzazione – anche in relazione a materie non strettamente tecniche.

Il Basic fu sviluppato all’Università di Dartmouth sul calcolatore GE-225; questo il contratto di vendita del General Electric Datanet verso l’Università di Dartmouth – da notare la memoria da 8192 word ed il totale di $305.000 (del 1964):



[Fonte: Internet]

In questo documentario (direttamente dal canale Youtube di Dartmouth) John Kemeny racconta personalmente la genesi del progetto DTSS, le difficoltà incontrate, la nascita del BASIC ed i primi successi – quasi immediati.

Per chi volesse, questo il manuale del primo Dartmouth Basic, ancora MOLTO simile al Basic che conosciamo bene ancora oggi.

Le caratteristiche del Basic

La semplicità (apparente) del Basic era evidente fin dall’inizio, insieme a qualche limitazione sulla tipologia delle variabili (e delle stringhe, introdotte solo successivamente).
Allo stesso modo, la numerazione delle righe con i relativi GOTO e GOSUB, tanto bistrattati e odiati.
A tale proposito, abbiamo anche parlato di come, nei Basic più recenti, vi fossero elementi di programmazione strutturata e la totale assenza e/o inutilità dei numeri di linea in favore di LABEL e SUBroutine.

Ascesa – il “sistema operativo”

La metà degli anni ’70 cambiano completamente il corso della storia dei computer – e la nascita dei personal computer: il BASIC ne è un motore fondamentale.
A partire dal MITS Altair, diversi sistemi completi di tastiera, monitor (spesso un terminale TTY) e di sistemi di memoria di massa non sempre affidabili si diffondono negli USA e in Europa.
Microsoft nasce in quel momento: l’intuizione di Bill Gates e di Paul Allen è che il linguaggio di programmazione possa veramente cambiare le cose per tutti gli appassionati di computer – altrimenti legati all’Assembler.

altair microsoft basic 8k

[Il primo BASIC Microsoft per Altair 8800 – su nastro perforato]

La nascita del personal.

Nel 1977, dapprima con l’Integer Basic e successivamente con l’Applesoft Basic, Apple II divenne uno dei più venduti personal computer dell’epoca, insieme al Commodore PET ed al TRS 80 Model I: la famosa ‘triade’ di personal computer che, ovviamente, si avviavano in Basic.
Allo stesso tempo, il sistema operativo business dell’epoca, il CP/M, di Digital Research era sempre accompagnato dal Microsoft Basic e buona parte della libreria di software gestionale per tutti i sistemi Z80 di questo segmento di mercato, era basata su programmi in Basic compilati.

Tutti i successivi home (e parecchi personal) computer, per quasi un decennio ebbero in comune il boot in Basic che divenne, di fatto, il sistema operativo di milioni di utenti (con tutta l’improprietà che questa affermazione comporta).

Abbiamo anche parlato della differenza tra interprete e compilatore, sulle necessità di compilare codice sorgente per ottenere codice macchina – più veloce, compatto e… non in chiaro!

Il passaggio successivo, verso il PC IBM vede ancora protagonisti il Basic e… Microsoft, con Bill Gates – ovviamente con relativo aneddoto sul DOS.
Dapprima BASICA IBM, successivamente GW-Basic, divennero gli strumenti d’elezione di moltissimi piccoli sviluppatori.

Allo stesso modo, la poderosa ondata di home computer (Sinclair e Commodore in testa) hanno nutrito a colpi di sintassi basica un esercito di adolescenti.
Da un lato il Basic a token, il dialetto Sinclair, dall’altro lo scarno linguaggio di Commodore che obbligava a conoscere indirizzi e valori di POKE praticamente a memoria.
Praticamente ogni home computer inserì istruzioni fuori standard (la piena definizione dello standard ANSI arrivò nel 1987…) per la gestione di grafica e audio, per non parlare delle istruzioni per la gestione dei file da floppy disc.
Abbiamo solo sfiorato l’universo MSX, il tentativo di Microsoft e di numerosi produttori hardware, di standardizzare un’architettura home ed il relativo software.
Personalmente, ricordo con grande interesse il BBC Basic, sviluppato per l’Acorn BBC Micro: un Basic particolare che permetta di includere sequenze di Assembler 6502 nello stesso listato.

Ci siamo soffermati sul BASIC quale strumento di sviluppo principale di un’epoca e di un’intera generazione di programmatori, dilettanti e professionisti, cui corrispose la nascita di parecchie software house.

Il cambiamento a metà anni ’80.

Dalla metà degli anni ’80 si cambia gioco: GW-Basic passa la mano a Quickbasic sotto DOS.
Entra in gioco la strutturazione, spariscono le linee di programma e compare una più elegante sintassi dei listati, compaiono i primi elementi di programmazione ad oggetti.
Con l’avvento dei 16 bit, delle GUI, di Atari ST, Macintosh ed Amiga, si affermano linguaggi di programmazione differenti, in particolare il C.
AmigaBasic tuttavia, mantiene alta la bandiera del Basic con una versione estremamente ben scritta e che, sebbene lenta, permetteva di costruire applicazioni ben complesse.
Real Basic, fondato da Kemeny e Kurtz, provò a portare anche su Mac e Atari ST lo stesso concetto, proponendo un ambiente Basic multipiattaforma.

Negli anni ’90, all’interno di Windows, prese piede Visual Basic in tutte le sue varie incarnazioni, che vivono in Office anche al giorno d’oggi quale linguaggio di programmazione della Suite.
Visual Basic in quanto tale o come linguaggio per Access (VBA) ha costituito la base di molta della fortuna di Windows (da 3.1 fino a metà del primo decennio del 2000).

Nel 2014, a 50 anni di distanza, TIME Magazine, ha pubblicato una sequenza di animazioni che illustra differenti ambienti operativi e di programmazione in BASIC in una galleria davvero unica.

Come usarlo OGGI

Esistono tantissimi modi di utilizzare Basic al giorno d’oggi, in particolare grazie ai tantissimi emulatori per i primi computer, sia personal che home.
Sopravvive ancora oggi in diversi dialetti, emulatori e… controller (Arduini, RPi, BBC Microbit), ha ancora oggi dignità nel mercato in quando VBA di Excel e Word (nonchè Access) ed è probabile che sopravviva alla migrazione su cloud della suite Office.

E’ possibile utilizzare un emulatore per DTSS (sia per Windows che per Mac – non-Intel) e provare le stesse funzioni del primissimo sistema in BASIC.
Segnalo inoltre il progetto Freebasic, un progetto veramente open source per rendere molto lunga vita del Basic (praticamente per tutte le piattaforme): si tratta di un compilatore, tuttavia, non di un interprete.
Segnalo anche:
RUN basic
Small Basic
Tiny basic

GW-Basic ha ancora oggi una comunità accanita di estimatori ed utilizzatori: ecco, su GW-Basic.com, diverse retro-risorse molto utili.

Link utili:
Computer History: software languages,
50mo anniversario del Basic a Dartmouth,
50mo anniversario del Basic: una retrospettiva.

Non potevamo concludere senza lo spot TV del Sinclair ZX81:

… e naturalmente alcuni spot dell’epoca tra cui quello del Commodore 64:

https://www.youtube.com/watch?v=sDRCuUlC52U

Share

3 pensieri riguardo “[Podcast] 4×02: Basic, programmazione e comunicazione basica

  • Danilo Giardino

    Grazie per la bellissima puntata! Vorrei segnalare ad un certo punto nell’articolo manca qualcosa, nel paragrafo le caratteristiche del BASIC…il finale è monco!

    Rispondi
    • Stefano Paganini

      Ho provveduto! Grazie per la segnalazione, Danilo!

      Rispondi
  • Date una occhiata a QB64, più compatibile verso QB45 rispetto a FreeBasic.
    questo è il link del Forum

    Rispondi

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.