1. Una macchina nuova e strana

I computer sono "manipolatori universali di informazioni". Come fanno a "manipolare" queste "informazioni"? Come un tostapane che possiede una serpentina di filo metallico che si surriscalda insieme al pane. Quando il filo si surriscalda abbastanza tocca un altro filo e chiude cosi' un circuito elettrico che fa uscire il pane. I computer,cosi' come il tostapane sono dotati di un mezzo per prendere decisioni elementari; la differenza consiste nel fatto che rispetto al tostapane i computer possono abbinare insieme un enorme numero di decisioni elementari, il che non li rende intelligenti ne' significa che possiedano pensieri, desideri, emozioni o senso comune.

Dai forni alle navette spaziali, dalle trappole per topi alle centrali nucleari, siamo circondati da milioni di dispositivi automatici ciascuno dei quali contiene piccoli grumi di saggezza congelata. Questi grumi di saggezza ci forniscono potere. I computer sono qualcosa di nuovo, macchine per le idee, dispositivi che possono trasformare i concetti filosofici, la fantasia e le immagini mentali in qualche cosa di tangibile. Basta poter descrivere con molta precisione cio' che vogliamo visualizzare.

La storia del computer inteso come "macchina calcolatrice" e' relativamente recente e, risale al 1823, data in cui l'inglese Charles Babbage idea il primo calcolatore meccanico. Quasi subito egli si rende conto che il suo progetto puo' venir ampliato, la sua macchina e' stata pensata solo per svolgere semplici operazioni aritmetiche. Babbage sa, grazie alle sue conoscenze di economia politica, che la divisione del lavoro governa l'organizzazione di qualunque cosa dalla vita di casa, alla fabbrica, all'economia mondiale.
Tramite la divisione del lavoro scopre che e' possibile creare una macchina composta di diverse parti preposte -ognuna- ad elaborare un diverso aspetto di una singola operazione, il totale ottenuto non essendo altro che la somma di tutte queste "sotto-operazioni".
Approfondendo lo studio Babbage scopre che se poi la macchina fosse capace di controllare il risultato ottenuto ed, eventualmente, di immagazzinare il percorso svolto per ottenere tale risultato, potrebbe addirittura modificare il proprio comportamento dopo essere stata avviata.
Nel 1935 Alan Turing e' il primo a capire che se noi comprendiamo un processo abbastanza bene da saperlo descrivere esaustivamente a un computer quest'ultimo e' in grado di simulare il processo stesso. E poiche' cio' che un computer fa' cambia a seconda del programma in funzione, esso puo' diventare qualsiasi macchina noi siamo in grado di immaginare con precisione.

2. La smania della velocita'

Tutto quanto ho appena descritto viene reso possibile da un unico congegno: l'interruttore, che e' molto simile quelli della luce, dei tostapane, delle trappole per topi e delle caffettiere elettriche. Nel computer pero' sono molto piu' piccoli e molto piu' veloci, sono interruttori di elettroni.
I primi grossi calcolatori che riempivano una stanza erano dotati di interruttori elettrici (proprio come quelli della luce), ed erano molto lenti. Il progresso tecnologico ha portato alla miniaturizzazione ad un punto tale che oggigiorno, si potrebbero sovrapporre su di uno di questi vecchi interruttori qualche centinaia di migliaia di interruttori "moderni".

La ragione di tale esponenziale diminuzione nelle dimensioni di ogni singolo interruttore va' cercata tornando al caro Babbage che scopri' quanto fosse vero il detto "l'unione fa' la forza". Va' infatti da se' che, alla luce di quanto detto finora, se un singolo compito viene spezzettato e ripartito in piu' elaborazioni, tanto piu' rapidamente si otterra' un risultato, quanto maggiore sara' il numero di "solutori" preposti alla risoluzione del compito stesso.

Ora che siamo giunti al fatidico secondo millennio che ha fatto sognare e tremare generazioni di appassionati di fantascienza, il futuro si presenta sotto forma di computer ottici che veicolano informazioni e le elaborano tramite fasci di luce. Alcune grandi gruppi informatici hanno gia' approntato alcuni prototipi di "elaboratori ottici" che sono poco piu' grandi di uno specchietto da barba. Inutile dire che le potenze di calcolo di questi computer sono paragonabili a quella di un moderno calcolatore almeno quanto lo sono la potenza di quest'ultimo se affiancato alla macchina calcolatrice di Babbage.

3. Parlar chiaro

Una volta dato per assodato che possiamo far fare ad un computer qualsiasi cosa possiamo pensare di riuscire a spiegargli chiaramente, rimane il problema di come fare a dargli le informazioni che gli servono per lavorare.
Qui prende forma il primo paradosso informatico dell'eta' moderna: La macchina di Babbage poteva far di conto e quindi programmarla significava farle "ingurgitare" i quesiti che necessitavano di risposte sotto forma di cifre e di simboli aritmetici.

Oggi programmare un computer per fargli fare "qualsiasi cosa" significa predisporsi a creare specifici programmi contenenti migliaia o, in alcuni casi, milioni di linee di testo scritte in un linguaggio comprensibile al computer, il cosidetto "linguaggio macchina". Tale linguaggio e' costituito da innumerevoli simboli numerici, sintattici e letterali frutto di una serie di convenzioni che, debitamente organizzati traducono al computer la nostra visione della realta' o di un determinato aspetto di essa sul quale la macchina dovra' lavorare. Una volta che il computer ha capito cio' che gli si chiede di fare bisogna anche spiegargli come farlo, e anche in questo caso bisogna ricominciare ad "impilare" righe di istruzioni codificate una sopra l'altra.
E' inutile dire che un lavoro del genere non e' assolutamente alla portata di chiunque data l'evidente complessita' del compito da svolgere. Oltre a cio' la programmazione in linguaggio macchina ha anche un'altro grosso difetto: essendo opera dell'uomo e' per forza di cose limitata e richiede un dispendio di tempo e di energie incredibile, incatenando di fatto il computer stesso a non poter fare altro che cio' che gli viene ordinato di fare. Scopriamo cosi' il secondo paradosso informatico dell'era moderna:
I computer sono lenti e limitati perche' i programmi che gli diamo da elaborare sono lenti e limitati. Siccome abbiamo appena finito di dire che un computer puo' diventare qualsiasi cosa gli si dica di essere ecco che quest'ultimo non potra' essere altro che il frutto delle istruzioni che gli vengono fornite.
Il terzo paradosso, che scaturisce dal secondo consiste nel fatto che non e' possibile costruire un elaboratore che elabori altri elaboratori piu' potenti di se' ....

Ergo, in quest'era in cui i calcolatori elettronici potrebbero essere mostruosamente piu' veloci e potenti di quanto non sono, e' ora la programmazione ad essere in difetto e a non riscire piu' a sfruttare appieno le capacita' dei computer, essendo un'attivita' sempre piu' onerosa e obsolescente che relega ancora il passaggio di informazioni - sempre piu' dettagliate e sofisticate - tra uomo e macchina, ad un linguaggio oramai del tutto insufficiente e spesso lacunoso ed impreciso.

4. Il modo congiuntivo

Sono attualmente in corso alcune sperimentazioni su macchine "intelligenti" in grado di apprendere dai feedback ricevuti dall'esterno. Ciononostante i "computer neurali" e la "Fuzzy Logic" sono piu' emulazioni delle complesse sinapsi cerebrali e del pensiero umano che non veri e propri tentativi di creare una macchina in grado di apprendere in modo "non meccanico".

Nonostante tutto il panorama del mondo informatico e' in continua evoluzione ed esistono gia' alcuni linguaggi di programmazione che, pur non essendo molto piu' elastici e facili da apprendere e da produrre del tradizionale codice di programmazione, se ne discostano comunque parecchio.

Uno di questi, il piu' recente e' il cosidetto "linguaggio orientato agli oggetti". Si tratta dell'unico codice esistente al momento, al di fuori degli esperimenti di cui sopra, che si discosta dal "code crunching" , letteralmente "macinare codice" e cioe' scrivere stringhe e stringhe di istruzioni in linguaggio macchina. Tale codice e' formato da piccole "scatole" che si presentano all'utente sotto forma di icone, che contengo gia' in se' le istruzioni necessarie a far funzionare il programma in cui sono racchiuse. In questo modo programmare diventa in un certo modo come disegnare o formare un puzzle in cui, ogni piccola tessera corrisponde ad una parte del tutto. Si tratta solo di posizionare il pezzo nel posto giusto.
Ultimamente questo tipo di programmazione sta' subendo grosse modificazioni e si appresta a divvenire il linguaggio del futuro, quello che rendera' veramente liberi gli uomini dalle macchine e viceversa, permettendo agli uni di sdraiarsi su di un amaca a sorseggiare una bibita e agli altri di correre a briglia sciolta.

5. Oggetti verdi

CASUALMENTE :-) il nostro piccolo amico verde cosi' obsoleto e cosi' "affossato" dai suoi creatori e' equipaggiato con un sistema operativo orientato agli oggetti estremamente versatile, che e' stato plasmato intorno al concetto di "icona".
Con tale termine ci si riferisce qui a qualsiasi componente grafico dell'interfaccia utente del Newton.
Le icone sono i mattoni sui quali si fondano tutte le applicazioni per il MessagePad; e' possibile progettare e costruire tali applicazioni tramite appositi ambienti di sviluppo. Nello specifico il linguaggio di programmazione utilizzato per creare programmi per il PDA di Apple e' il Newton Script, un linguaggio orientato agli oggetti (ma guarda chi si rivede!) che accorpa in se' tutti i costrutti e le strutture di dati necessari a produrre applicazioni altamente specializzate e sofisticate.

Ne fornisco alcune caratteristiche:
-Supporto nomi lunghi (32 bit)
-Supporto 64 bit (numeri in virgola mobile)
-Supporto di ogni tipo di operatore, classe, funzione.
Il Newton Script e' costruito con la stessa struttura del Newton OS, in modo da essere interamente compatibile con esso. Supporta quindi in toto gli elementi costitutivi fondamentali del Newton OS:
- Icone
- Proto templates
- Modelli "storage" e "retrieval"
- "Soups"
- "Routing"

Come gia' abbiamo detto l'icona e' l'oggetto piu' importante nelle applicazioni per Newton. Le icone vengono create a partire dai cosidetti "templates" che altro non sono che dei "frames" contenenti la descrizione dei dati di un oggetto (l'icona stessa).
Nella ROM del Newton trovano posto dozzine di Proto templates che forniscono all'utente che si accinga a creare applicazioni per il Newton praticamente ogni tipo di funzionalita' collegata all'interfaccia utente (pulsanti, immagini, testo - statico ed editabile - forme geometriche,
liste di spunta e varie altre). Per di piu' il Newton OS e' dotato di vari sistemi di ricezione delle chiamate. Tali chiamate possono venir utilizzate per personalizzare il comportamento di ogni singola applicazione in determinate situazioni (apertura, chiusura, modifica, salvataggio della modifica ecc.).
Si potrebbe ad esempio volere che una certa icona (a scanso di equivoci ribadisco che quando parlo di icone sto' riferendomi per analogia all'applicazione/classe/operatore ad essa associata), svolga un certo tipo di lavoro ogni volta che la si rende attiva. Tutto sta' nel definire uno script specifico per quella icona che verra' chiamato ogni qualvolta l'applicazione associata a quest'ultima verra' attivata.

I modelli di "storage" ( memorizzazione) e di "retrieval" (recupero) in uso nel Newton sono estremamente interessanti. Utilizzano infatti entrambi un modello di dati unificato, tutti i dati vengono quindi memorizzati in un formato comune, eliminando in questo modo la necessita' di traduzioni a prescindere dal tipo di applicazione che ha prodotto i dati da trattare.
Tale modello e' stato costruito intorno alle "soups" . Una soup (letteralmente "zuppa") e' una compilazione di dati di oggetti correlati tra loro che vengono definiti "entries" .
Ogni "entry" corrisponde a un dato, un certo numero di dati costituisce una applicazione o un qualsiasi altro oggetto.
Tali dati vengono memorizzati nella ram del Newton e compressi o decompressi in modo trasparente ogni volta che l'applicazione di cui sono parte costitutiva viene aperta o chiusa.
Ogni "soup" ha un nome ed e' contenuta in un'allocazione di memoria. Tale allocazione puo' venir considerata come uno dei settori di un disco rigido. Il Newton contiene una scheda di ram che fa' le veci di un disco rigido. E' possibile disporre di unita' di memoria aggiuntive tramite apposite schede PCMCIA o altre periferiche (ad esempio il disco di un Mac collegato al Newton tramite porta seriale o Appletalk).

Un'altra importante funzione del Newton OS riguarda il "routing" (letteralmente "istradamento")., che ha lo scopo di semplificare il piu' possibile le comunicazioni tra il nostro beneamato e il mondo esterno. La stampa, l'invio e la ricezione di fax, l'invio e la ricezione di posta elettronica e la navigazione in rete ricadono tutti sotto la supervisione di un solo API. All'utente tocca di definire un formato per i dati e un formato nel frame preposto alla funzione di istradamento. Infine bisogna creare uno specifico percorso di dati che fornira' al programma tutte le informazioni addizionali necessarie al buon fine della routine appena lanciata (nome, numero di fax, numero del provider o della postazione remota). Il sistema si occupera' di tutti gli altri dettagli al posto dell'utente.

6.Uomo e macchina - la tregua possibile

Abbiamo appena finito di esaminare dall'interno i motivi per i quali l'interfaccia utente del Newton appare cosi' flessibile e umana. Un esame piu' approfondito confermera' che il Newton OS consente di fare cose che nessun altro computer potra' mai fare: parlare con la vostra voce, scrivere con la vostra grafia, comprenderla e tradurla in caratteri stampati o in simpatici caratteri tondeggianti.
Il Newton puo' arrivare a rivaleggiare con i fratelli maggiori, desktop e laptops non possono eguagliare il Newton.

L'interfaccia "point and click" e' un sogno diventato realta' sul MessagePad. Provate ad interagire con il Newton utilizzando la tastiera per scrivere e l'elegante stilo in dotazione per puntare le aree dello schermo da evidenziare, come si farebbe con un mouse. Non e' molto piu' comodo lavorare cosi' che su di un computer da scrivania con un normale mouse o con la trackpad sul portatile?
I pc hanno la croce delle varie sequele di Windows, ma anche la delizia di Unix e delle sue incarnazioni (Linux), poi ci sono i vari BeOS, NextStep, SunOs e infine il MacOS. Tutti sono piu' o meno potenti, articolati, sofisticati, alcuni sono basati su gradevoli interfacce ad oggetti, altri sulla riga di comando, altri ancora su un miscuglio dei due.

Ciononostante, nessuno di questi OS e' potente, agile, intuitivo e veloce come il Newton OS. Ogni icona ha un significato chiaramente insito nell'icona stessa, ogni programma e' basato sullo stesso set di pulsanti e di linguette che, di volta in volta acquistano capacita' diverse, legate all'ambiente del software in cui si trovano a lavorare.

Niente confusioni dunque, niente menu' generici in cui perdersi, niente icone contraddittorie o cartelle contenenti sottocartelle che contengono a loro volta altre cartelle mentre, in ognuna delle precedenti risiede un pezzetto di programma che, se buttato via per errore, rende inutilizzabile il tutto.
In Newton Os ogni software consiste unicamente in un'icona eseguibile, la propria. Eventualmente, ci sara' anche un' estensione per i programmi piu' grossi e sofisticati.
Quindi niente "scrivania" disordinata con centinaia di cartelle o di "alias", in Newton Os non c'e rischio di perdere i propri documenti, anche perche' ogni programma contiene gia' in se' stesso la propria gerarchia di cartelle alle quali, volendo e' possibile aggiungerne altre. Cionondimeno non avrete mai bisogno di scartabellare dovunque alla ricerca - ad esempio - di un file di testo scritto con Works, bastera' aprire il programma stesso facendo un solo "tap" con lo stilo sull'icona del programma, per avere accesso al programma stesso ed a tutte le sue cartelle che - a loro volta - conterranno tutti i files che avrete creato con quest'applicazione.
Ma il MessagePad (se mi consentite l'espressione da poeta dei poveri), non nasce e non muore con il Newton Os, il fulmineo aprirsi delle applicazioni, la scrivania che viene visualizzata, con Newton pronto al lavoro, in tempo zero dopo l'accensione, il multitasking che permette di lavorare su piu' applicazioni contemporaneamente e/o su varie connessioni in rete con download/upload multipli, tutto questo e' dovuto alla ram, che e' centinaia di volte piu' veloce del piu' veloce di tutti i dischi per computer. Il Newton infatti lavora solo con la ram, su due chip che contengono l'uno, le informazioni rom per far funzionare il Newton, e l'altro il sistema operativo e gli applicativi "built in" che non vengono cancellati dai reset totali.Tutte le informazioni "volatili" vengono immagazzinate "internamente" in un chip di ram (da 4 mega nel 2000), al quale la macchina attinge per far funzionare i suddetti soft, come farebbe un normale computer con il proprio disco rigido,solo molto, molto piu' velocemente.

Facendo una sintesi un po' brutale di tutto quanto sopra: Quando parliamo di Newton MessagePad ci stiamo riferendo al primo vero sistema informatico da tasca capace di fare a velocita' da brivido tutto quello che farebbe qualsiasi altro computer, senza averne dimensioni e ingombro, potendo svolgere piu' tasks in una volta, senza problemi di conflitti o rallentamenti dato che tutto il sistema Newton gira su ram con due vantaggi enormi:
-La velocita' di cui sopra
-Il fatto che ogni task lanciato viene gestito in modo autonomo su una diversa allocazione, in caso uno di questi compiti dovesse avere dei problemi o dovesse bloccarsi, si fermerebbe solo l'esecuzione del compito stesso mentre gli eventuali altri tasks in corso proseguirebbero il proprio lavoro.

Quindi: solidita', velocita' pazzesche e stabilita'in un Os racchiuso in 130k di spazio, un Os veloce, affidabile, robusto che e' anche semplicissimo da utilizzare e non necessita di nessuna conoscenza informatica ne'della conoscenza di alcun linguaggio di programmazione.
Un Os umano che pensa come voi, che cresce con voi, imparando a riconoscere la vostra calligrafia, le vostre espressioni, il vostro stile. Un Os che non vi costringe a costanti reset, backup, copie di sicurezza. Il salvataggio di qualsiasi file prodotto sul Newton e' automatico. Basta chiudere il programma che state usando e tutte le modifiche verranno salvate. Idem dicasi nel caso in cui il MessagePad dovesse spegnersi nel bel mezzo del vostro lavoro; nessun problema! Tutto salvato fino al nanosecondo prima dell'interruzione (potenza della ram!).


Citazioni tratte da:
"Schiavi del computer?", di Gregory J.E. Rawlins