Finalmente Amiga è qualcosa di più di un'idea: grazie a qualche breadboard, a molti chip e a moltissimi cavi l'hardware ha cominciato a prendere forma. E il software?

Niente paura, arriva pure il software. In questo post della serie A History of the Amiga, Jeremy Reimer di Ars Technica ci parla della nascita di AmigaOS, delle idee e della filosofia che ne guidarono lo sviluppo, e delle caratteristiche che lo portarono un passo avanti a tutta la concorrenza dell'epoca (e anche di qualche epoca successiva). L'articolo originale è disponibile qui.

ELEVARE LO STANDARD DEI SISTEMI OPERATIVI

Tutti i computer, a partire dai primi calcolatori elettronici, hanno sempre richiesto un qualche tipo di "master control program" ("programma centrale di controllo") per gestire le operazioni di base come far girare le applicazioni, gestire l'ambiente dell'utente, comunicare con le periferiche come i drive per i floppy e gli hard disk, e controllare il display. Questo "master program" viene chiamato sistema operativo, e, nella maggior parte dei computer dell'epoca, era un programma molto semplice, capace di fare solo una cosa per volta.

Jay era specializzato nella progettazione dell'hardware, non del software, per cui contribuì molto poco allo sviluppo del sistema operativo dell'Amiga. Tuttavia, voleva che il suo computer fosse più avanzato dei personal computer tipici dell'epoca, su cui giravano sistemi operativi primitivi come AppleDOS ed MS-DOS. La figura che assunse come capo ingegnere software, Bob Pariseau, non veniva dal mondo dei microcomputer. Aveva invece lavorato per la Tandem, una società che produceva mainframe e che all'epoca (e ancora oggi) forniva massicci computer all'industria bancaria.

Bob era abituato ai suoi potenti computer, in grado di gestire molti compiti e transazioni insieme allo stesso tempo. Non vedeva perché i microcomputer non dovessero essere in grado di fare lo stesso. All'epoca, non c'erano personal computer capaci di multitasking, ed in generale si pensava che la poca memoria e la bassa velocità delle CPU di queste macchine rendessero il multitasking impossibile. Ma Bob andò avanti per la sua strada ed assunse altre persone che la pensavano come lui.

Le quattro persone che assunse inizialmente sarebbero in seguito diventate delle leggende nello sviluppo del software. I quattro erano RJ Mical, Carl Sassenrath, Dale Luck e Dave Needle. Il colloquio d'assunzione di Carl fu il più semplice di tutti: Bob gli chiese quale fosse il suo sogno più grande in ambito lavorativo, e Carl rispose: "Progettare un sistema operativo multitasking". Bob lo assunse immediatamente.

Carl Sassenrath proveniva dalla Hewlett-Packard, dove aveva lavorato alla nuova versione di un sistema operativo multitasking per la divisione di HP che si occupava dei server di fascia alta. Nelle parole di Carl:

"Ciò che mi piaceva di HP è che credevano veramente nell'innovazione. Mi lasciavano comprare tutti i libri e le riviste che volevo... così, in pratica, mi studiai tutto ciò che fosse mai stato pubblicato sui sistemi operativi. Ero anche in comunicazione con gente della Xerox PARC, dell'Università della California di Berkley, del MIT e di Stansford, per tenermi aggiornato sulle loro attività.

Nel 1981-82 conobbi il CPM e l'MS-DOS, e la mia conclusione fu che erano stati progettati male. Per cui, cominciai a creare il mio progetto di SO, già prima di incrociare l'Amiga."

Perciò, il sistema operativo Amiga sarebbe stato multitasking, e si sarebbe basato su alcune idee di Carl, idee che corrispondevano a ciò che in seguito i ricercatori accademici nell'ambito dei sistemi operativi avrebbero definito "microkernel". Carl aveva inventato il microkernel ancor prima che avesse un nome. Il kernel è il cuore del sistema operativo, e nella visione di Carl sarebbe stato piccolo, veloce, ed in grado di fare più cose insieme. Di rimando, queste caratteristiche avrebbero pervaso tutto il resto del sistema operativo dell'Amiga.

La decisione di creare un kernel multitasking avrebbe avuto un enorme impatto sulle prestazioni dell'Amiga, e gli effetti possono sentirsi ancora oggi. Dato che il mercato dei PC mainstream non ebbe un vero multitasking fino al 1995 (con Windows 95) e quello dei Macintosh fino al 2001 (con OSX) un'intera generazione di programmatori crebbe su queste piattaforme senza conoscerne e capirne gli effetti, laddove l'Amiga, che ebbe questa caratteristica sin dal suo concepimento, consentì immediatamente ai suoi sviluppatori ed ai suoi utenti un approccio diverso: l'utente Amiga non avrebbe mai dovuto aspettare il computer. Di conseguenza, i programmi sviluppati per Amiga tendevano ad avere un feeling diverso, più reattivo rispetto a quelli sviluppati per altre piattaforme.

AGGIUNGERE UNA GUI

All'epoca venne presa un'altra decisione significativa per l'Amiga, ovvero di progettarlo con un'interfaccia utente grafica. La maggior parte dei personal computer di quei giorni erano controllati tramite un'interfaccia a linea di comando: l'utente doveva scrivere il nome dei programmi che voleva avviare ed immettere una lunga serie di comandi per spostare i file o fare altre attività di manutenzione del computer.

L'idea di un'interfaccia utente grafica non era una novità. Douglas Engelbart ne dimostrò la maggior parte delle caratteristiche, e con esse il primo mouse al mondo, nel 1968, ed i ricercatori della Xerox PARC avevano creato dei modelli funzionanti già a metà degli anni '70. Agli inizi degli anni '80, sembrava che tutti volessero guadagnare con l'idea delle interfacce grafiche, ma svilupparle sui primitivi computer dell'epoca era problematico. La stessa Xerox, nel 1981, immise nel mercato il computer Star, ma costava 17.000 dollari e vendette poco, limitandosi a fungere da ispirazione per le altre società. Il computer ad interfaccia grafica della Apple, il Lisa, uscì nel 1983. Costava 10.000 dollari e, come lo Star, vendette poco. Chiaramente, l'utenza dei personal computer era sensibile ai prezzi, anche quando i prodotti che le venivano proposti avevano caratteristiche nuove ed avanzate.

Apple risolse il problema del prezzo creando una versione economica del Lisa. Il grande schermo fu sostituito da un piccolo monitor monocromatico da 9 pollici. Invece di due drive per floppy, la nuova macchina ne avrebbe avuto solo uno. Non c'erano chip custom per accelerare il sonoro o la grafica. Insomma, quanto più hardware possibile venne rimosso dal modello base, inclusi i chip di memoria - il sistema operativo fu completamente riscritto per farlo girare con soli 128 kilobyte di RAM. Questo nuovo sistema operativo era capace di far girare solo un programma alla volta - non poteva neanche passare da un programma in pausa ad un altro.

Questo nuovo computer fu il primissimo modello di Macintosh, e nel gennaio del 1984 Steve Jobs lo presentò in maniera drammatica al mondo. Ciò che molti non ricordano è che il Macintosh non fu inizialmente un successo - vendette abbastanza bene nel 1984, ma in realtà negli anni successivi le vendite calarono. Il Mac, nella sua incarnazione originale, non era in effetti molto utile. Il word processor incluso nella macchina era limitato a sole otto pagine, e, a causa della memoria limitata e del floppy drive singolo, fare una copia di backup di un disco richiedeva dozzine di estenuanti scambi di floppy manuali.

Il team del sistema operativo Amiga non voleva creare un qualcosa di "economico". Il gruppo di progettazione dell'hardware non stava scendendo a compromessi e non stava riducendo le caratteristiche al minimo indispensabile, per cui perché avrebbero dovuto farlo loro?
Il Workbench, l'interfaccia utente dell'Amiga
Una delle parti più difficili del programmare un'interfaccia utente grafica consiste nel crearne la struttura di controllo di basso livello, chiamata API (Application Programming Interface, interfaccia di programmazione dell'applicazione), che gli altri programmatori useranno per creare nuove finestre, menù, e altri oggetti nel sistema. L'API bisogna farla bene da subito, dato che una volta che viene resa pubblica e diventa popolare, non può essere modificata facilmente senza creare problemi a tutti i programmi che già la usano. Eventuali errori e cattive scelte di progettazione nella versione originale di una API possono perseguitare i programmatori per anni.

RJ Mical, il programmatore che aveva creato il gioco "Zen Meditation", si addossò il compito di progettare l'API dell'interfaccia grafica dell'Amiga. A quanto racconta Jay Miner, si rinchiuse nel suo ufficio per tre settimane, e ne uscì solo una volta per chiedere a Carl Sassenrath qualcosa a proposito delle message port. L'API che ne risultò fu chiamata Intuition, un nome appropriato al modo in cui era stata sviluppata. Finì per essere un'API molto pulita e facilmente comprensibile, di cui i programmatori si innamorarono. Al contrario, l'API di Windows, chiamata Win16 (e successivamente aggiornata a Win32) fu creata da un intero team di persone e finì per essere un guazzabuglio odiato dagli sviluppatori.

Post precedente | Post successivo