giovedì 27 novembre 2008

Cosa non si direbbe pur di dire che il Commodore 64 sarebbe migliore...

Ci troviamo, quindi, con due filosofie completamente diverse nell’approccio alla computazione. Difficile, se non impossibile, stabilire quale dei due processori fosse mediamente più veloce, se non su singoli e ben precisi pezzi codice.

Si parlava del confronto tra Zx Spectrum e Commodore 64, nel quale quest'ultimo incappa in un'escalation di figuracce sempre più vergognose.

Qui sotto, due immagini eloquenti: una con la grafica "varia" ma cubettosa (il Commodore 64), e l'altro con la grafica più "stilosa" ma a risoluzione praticamente doppia (lo Zx Spectrum).

Non c'è bisogno di scomodare filosofie di progettazione, stili di programmazione, mito dei megahertz e tutto il resto per nascondersi di fronte all'evidenza, e cioè alla netta superiorità dello Zx Spectrum sul Commodore 64.

Certo, lo Spectrum non aveva un generatore sonoro autonomo ma un ronzatore piezoelettrico, non aveva il tastierone con i semirettangolini marchiati a fuoco sui tasti, non aveva neppure una coppia di porte joystick e neanche uno sprite controller. Eppure, con quel "poco" che aveva, faceva e strafaceva meglio del pubblicizzatissimo C64.

Il processore del C64, clockato all'esilarante velocità di zero virgola novantotto megahertz (982mila cicli al secondo: neanche l'Apple I, negli anni settanta, era riuscito ad andar peggio), perdeva miseramente il confronto perfino sul suo terreno più favorevole ("pagina zero", "accesso diretto alla memoria", "istruzioni veloci" e via cantando), come dimostrato dalle verificabilissime routine per l'incremento di un contatore a 24 bit nell'episodio sopra linkato.

Venne poi il periodo in cui sul C64 apparivano copie rifatte dei giochi usciti in precedenza per lo Spectrum: sebbene pochi commodoriani abbiano avuto il fegato di ammetterlo, è l'ennesima prova lampante che una macchina "povera" (si fa per dire) quale lo Spectrum, era sia user-friendly che programmer-friendly, due qualità che al C64 erano totalmente assenti (cfr. episidio sopracitato), e che la fantasia degli "spectrummisti" non conosceva mai un vicolo cieco.

La relativa "povertà" hardware dello Spectrum infatti non era un vero limite: tanto per fare un esempio, ne sanno qualcosa i radioamatori, capaci di fare "packet radio" con un programmino sullo Spectrum che trasmetteva e riceveva dati direttamente dalle cuffie/microfono del transceiver (laddove sul C64 era inevitabile aggiungere un'interfaccia hardware)... e ne qualcosa anche il sottoscritto, che a quindici anni di età (ed un solo anno di utilizzo dello Spectrum), senza altro sussidio che il manuale originale dello Spectrum scrisse un programmino per giocare a tombola, in cui il comando per l'estrazione era il rumore provocato da un battito di mani campionato dalla porta audio del registratore.

C'è comunque un atteggiamento degli anni ottanta che forse non si rimpiangerà mai abbastanza: l'attitudine a sfidare gli altri non a suon di "ho più potenza di te, ho più periferiche di te", ma a suon di "quel che fai tu, io lo posso far meglio e con meno risorse".

Ancora ai primi anni dell'università, ci si vantava con "ho creato un programma che", "ho scritto una routine che", "ho ideato un metodo più veloce per". Un amico ingegnere di Gragnano mi mostrava fiero il suo listatone Basic zeppo di arditi calcoli di ingegneria, un programma che aveva verificato essere "più veloce degli equivalenti commerciali su PC", nonostante il suo computer avesse meno megahertz e meno memoria dei PC compatibili dotati di compilatore Basic, di processori più veloci e di "enormi" (per l'epoca) quantità di RAM.

E ricordo le nostre stesse facce, quando nel 1991 consegnammo uno dei nostri primi mostruosi software, su cui avevamo lavorato davvero sodo per farlo andare a velocità ragionevole sui '286 che usavamo per sviluppo e debugging. Dopo averlo installato sul '386 del cliente, lo vedemmo correre a velocità supersonica, meravigliandoci più del cliente stesso.

Debbo fermarmi qui con le divagazioni perché è notte fonda...

1 commento:

  1. Sullo Spectrum non ho mai programmato. Il mio primo computer è stato un Commodore, ma non il costosissimo (per allora e per le mie tasche) C64, bensi l'onorabilissimo e meraviglioso VIC 20. Anche io odiavo il 64, o per lo meno odiavo l'atteggiamento degli amici che usavano il C64 solo come una console di videogiochi, mentre io dovevo fare i salti mortali per fare girare qualcosa su 2K di ram.
    Però le poche risorse di quelle macchine ti costringevano a spremere per ottenere risultati mentre ora non bastano 4Gb di RAM per far girare Word decentemente.
    In ogni caso, penso che forse eravamo diversi noi. Ho provato a fare appassionare qualche adolescente di oggi alla programmazione di videogame, ma ho fallito miseramente. Se si tratta di giocare va bene, ma se c'è da fare qualche conto, ci vuole troppa fatica.
    Comunque grazie per questo post che mi ha fatto fare un salto indietro di almeno 20 anni.
    POKE 36878,15
    POKE 36877,100
    REM ...

    RispondiElimina