PRESS PLAY ON TAPE: no alla FORZA BRUTA

Ovvero dal BASIC al TURBO PASCAL (passando per l’ASSEMBLY!)

Nel 1984 ricevetti in dono un COMMODORE VIC 20 e iniziai la mia esperienza di bambino programmatore che mi lasciò un animo NERD che ancora oggi mi appartiene. Tanti anni dopo studiai presso un Istituto Tecnico Industriale la mia materia preferita Informatica!

COMMODORE VIC 20 (1982)

Quanta passione e quanto tempo dedicato a capire i meccanismi che regolavano il funzionamento dei computer dell’epoca.

Passai anni a capire i limiti dell’hardware che avevo la fortuna di poter usare e sperimentare. Lessi tutti i manuali che trovai in giro su computer COMMODORE, OLIVETTI, IBM, AMSTRAD.

Manuale COMMODORE VIC 20
Manuale COMMODORE VIC 20

Quasi non mi sembrava possibile che ci fosse una scuola vera in cui oltre la matematica (che amo da morire) e l’Italiano si studiassero materie specifiche come Informatica e Sistemi.

A quei tempi il linguaggio di programmazione più diffuso era sicuramente il BASIC che aveva dei grossi limiti essendo un linguaggio interpretato. Era lento perché fra il BASIC e il linguaggio macchina (quello che il computer comprende) c’era un interprete che doveva tradurre in “DIRETTA” il codice BASIC perché le istruzioni fossero chiare al computer.

A scuola iniziammo a studiare un linguaggio di programmazione diverso: il PASCAL. Un linguaggio molto elegante e diverso dal BASIC. In PASCAL tutto era importante: dal definire precisamente tutte le variabili in gioco che avrei usato al rispetto maniacale di ogni regola di sintassi.

BORLAND Turbo Pascal 5.5
BORLAND Turbo Pascal 5.5

In BASIC tutto era lecito…il computer sembrava un amico con cui puoi parlare una lingua personalizzata. Un gergo pieno di errori grammaticali, ma che fra amici è chiarissimo.

La scelta di insegnarci il Pascal nella versione Turbo Pascal della BORLAND era sicuramente mirata a introdurre nelle nostre vite il concetto di SINTASSI, rispetto delle regole (seppur grammaticali), progettazione e, infine, ottimizzazione.

Si perché per anni i computer non solo erano lenti, ma avevano talmente tanti limiti di memoria, spazio su disco o sui floppy che ogni bravo programmatore doveva tenere conto di questi limiti e imparare a progettare tutto con cura. Avendo in mente quante e quali variabili di un certo tipo avrebbe usato, quanto spazio ciascuna avrebbe occupato in memoria RAM e sui dischi.

Il concetto di OTTIMIZZAZIONE è entrato nella mente di ciascuno di noi. Anche lo studente più svogliato avrà sicuramente interiorizzato il fatto che per far funzionare una cosa con pochi mezzi devi avere le idee chiare. Non puoi sprecare nulla…neanche la più piccola parte delle risorse che hai.

Gli anni a venire ci fecero incontrare il RE SUPREMO dei linguaggi di programmazione, quello che in fatto di sprechi è imbattibile perché è la lingua madre dei computer: il linguaggio MACCHINA.

Assembly 6502
Assembly 6502

Per dirla con onestà c’è un substrato di comunicazione quasi umano che è l’ASSEMBLY…fatto da sigle di tre lettere tipo LDA, STX e così via. Sembra incomprensibile, ma si impara.

Quello era lo stadio di massima vicinanza all’anima del computer, con ASSEMBLY potevi spremere tutta la potenza di un 6502 o 6510 dentro un COMMODORE 64 oppure se proprio eri fortunato potevi imparare quello del MOTOROLA 68000 che era il cuore degli AMIGA. Per qualche estremista c’era persino la possibilità di parlare con un INTEL 8086 a 16 BIT….che ve lo dico a fare?

Ma tutti questi paroloni per dire cosa? Per dire che una generazione di NERD ha conosciuto il concetto di pensiero, ottimizzazione, progettazione dettagliata e dovrebbe oggi poterne fare uso nel mondo moderno che sembra volere affrontare tutto con un approccio di FORZA BRUTA.

Questo concetto ha diversi significati, ma qui lo intendo semplicemente con l’idea che quando hai una soluzione la puoi potenziare aggiungendo RAM, dischi più grandi, velocità di connessione alla rete più elevata oppure…

…oppure puoi accettare che il modello che stai usando ha dei limiti e mettere di nuovo tutto in discussione per poter trovare nuove soluzioni.

La differenza è nell’idea. Una auto può essere una FIAT 500 degli anni 50 oppure una FERRARI del 2022….sempre quattro ruote e un motore avrà. In alcuni casi, però, magari il motore è a combustibile fossile e in altri è elettrico.

Qualcuno può ragionare su come rendere il mezzo più leggero, altri possono riflettere su come alleggerire il carico delle città più intensamente popolate incentivando le aziende ad investire in luoghi meno abitati e più economici e riducendo così le distanze da percorrere, alleggerendo il traffico per le strade…

Insomma non fermiamoci alla soluzione FORZA BRUTA, non tutto si conquista con un coltello fra i denti e un mitragliatore al collo…magari potremmo trovare una soluzione diversa, magari qualcuno avrebbe potuto imparare da un vecchio COMMODORE che nella vita c’è sempre una soluzione diversa che non necessita l’uso della forza bruta.

Comments

  1. […] del mestiere questo numero non significa molto, ma per un informatico che ha dovuto codificare in ASSEMBLY operazioni come la divisione fra numeri più grandi di un Byte (8 bit per l’appunto) lavorare […]

Comments are closed.