Frammenti di storia del Newton (2)

Mele e appunti

Ecco la seconda parte di questo piccolo viaggio dietro le quinte della storia del Newton. Per contestualizzare il testo che sto traducendo e presentando qui, è essenziale leggere la prima parte. Le mie osservazioni e integrazioni sono in corsivo fra parentesi quadre.

Un bug misterioso

2. [In risposta a una domanda su un qualche strano bug del Newton]. Qualche tentativo per risolvere il problema venne fatto, ma i ‘veri’ ingegneri che si occuparono del kernel avevano già lasciato Newton/Apple quando il bug iniziò a manifestarsi, e il personale rimasto (me compreso) non era abbastanza motivato e/o non era in grado di isolarlo. Dagli ultimi lavori compiuti in questa direzione, pare che il bug fosse molto difficile da riprodurre e che il problema fosse nel modulo Flash “demand pager” nel kernel a basso livello. Apparentemente, una combinazione molto complessa di azioni, insieme a un’intensa attività di paging, alla fine provocava un errore di paging che mandava in crisi il sistema operativo.

La causa precisa non fu mai isolata, pertanto non si sa se fosse possibile applicare una patch. La tabella di patch nella ROM contiene la maggior parte delle routine nel codice nativo ROM, ma vi sono parecchie funzioni interne al kernel a cui non è possibile applicare patch a causa della riduzione prestazionale che impatta una funzione solo per essere compresa nella tabella di patch. È molto probabile che il bug non fosse riparabile, ma senza conoscere l’esatta natura del bug non si può affermare nulla di certo.

Un codice prezioso e variegato

3. Oltre a essere il ‘Newton Patch Master’, il mio lavoro primario nel Newton group era occuparmi del Build System e dei Build Tools. La ROM del Newton è in gran parte C++, con parti in Assembler e molto NewtonScript. La ROM veniva costruita soltanto utilizzando un compilatore ARM e un linker modificati (provenienti dall’azienda ARM in Inghilterra), e una serie di strumenti MPW specializzati scritti da Apple, e il tutto girava sotto MPW [Macintosh Programmer’s Workshop]. Questo era il solo ambiente di costruzione per i 6 e passa MB della ROM ‘di base’. La ‘ROM extension’ contiene un insieme di pacchetti NewtonScript, altre tabelle, ecc., ed è stata realizzata con NTK [Newton Toolkit] e altri strumenti MPW specializzati.

La ROM contiene inoltre del codice sorgente in licenza da altri produttori software: Paragraph International per il motore di riconoscimento della scrittura corsiva, i dizionari dei termini e del correttore ortografico; ARM Ltd per le librerie Std C. Apple non potrebbe di certo rilasciare il codice sorgente avuto in licenza. In più, la ROM contiene parte del codice Apple più prezioso, una porzione modificata di QuickDraw (dell’epoca del Mac SE) e tutto il Printing support for QuickDraw e per la stampa PostScript. Apple sviluppò anche il ‘Printing Recognition Engine’ [il motore per il riconoscimento della scrittura non corsiva, a lettere separate], è scritto in C/C++ ed è ‘Newton-dipendente’. Fu sviluppato sotto UNIX e i risultati di calcoli automatizzati piuttosto lunghi hanno prodotto la rete neurale che il Newton utilizza per effettuare il riconoscimento [e la conversione] del testo.

Era opinione di Jobs che questo codice fosse troppo prezioso perfino per Newton Inc., figuriamoci al di fuori di Apple. Open Source? Neanche per sogno. E poi il codice base della ROM non è ben distribuito su livelli, molte ampie porzioni sono troppo ‘incestuose’, quindi non è affatto qualcosa sulle cui porzioni un gruppo qualsiasi di ingegneri potrebbe lavorarci in maniera indipendente. Anche con un team riunito in un solo luogo non era infrequente avere problemi causati da interazioni inattese ed errori dovuti alla mancanza di una buona distribuzione del codice su livelli e di un buon isolamento nel sistema operativo e nelle applicazioni incorporate. Nel 1997 fu iniziato un progetto all’interno del Newton group per la realizzazione di un OS ‘modulare’. Lo scopo era riscrivere gran parte della ROM così da renderla mantenibile anche in futuro, ma molto di quel lavoro non fu mai portato a termine.

4. Sì, anche IntelliSync [software di sincronizzazione prodotto da IntelliLink] era in licenza, e a mio parere fu uno degli errori più grandi commessi da Apple, ossia quello di non sviluppare un proprio software per tali compiti. […]

Dubito che il produttore [si riferisce ancora a IntelliLink, suppongo] intenda rendere disponibili le interfacce e non sono sicuro che NCU sia sufficientemente modulare da accettare nuovi plug-in; non credo lo sia.

Priorità di risorse

[Probabilmente il nostro Ex Newton OS Engineer risponde a domande sul perché, per il Newton MessagePad, furono scelte determinate tecnologie e porte a scapito di altre. Purtroppo nel testo che ho a disposizione mancano le domande precise, vi sono soltanto le risposte dell’ingegnere.]

5. La tecnologia IR (infrarossi) del Newton era anteriore a IrDA e IR non si rivelò essere una funzione molto utile, perché averla costantemente attiva significa un consumo energetico eccessivo. Essenzialmente, per avere un’interfaccia IR funzionante, il software dev’essere sempre in ascolto per ricevere input IR e questo, insieme all’output IR, consuma energia. Inoltre, un IR full duplex è una brutta bestia da implementare, e avere più fonti di input IR allo stesso tempo è problematico, perché distorce l’input. Di conseguenza, la maggior parte delle implementazioni IR sono half dulplex e il processo di scambio dati è lento e costoso quando si ha a che fare con un gran numero di piccoli frammenti di informazioni. […]

Per quanto riguarda Ethernet, è un livello di trasporto e un protocollo che non ha nulla a che vedere con Windows; il MessagePad 2000/2100 ha il supporto per il TCP/IP, che è il protocollo più comune e si serve di hardware Ethernet per le reti. Il problema legato al ‘Network’ su un PDA e nei Newton MessagePad, è che il Newton non è stato progettato per connettersi a una WAN o a una LAN, e tali reti richiedono un’attenzione costante a livello hardware, che deve mettersi in ascolto per captare tutti i pacchetti che transitano nella rete. Il Newton OS non fu progettato per fare questo, e aggiungere tale funzione in un secondo momento fu un hack. E a mio parere un altro grosso errore commesso da Apple con l’intera linea di prodotti Newton fu il tentativo di rendere i MessagePad dei ‘dispositivi per Internet’. Invece di realizzare un MessagePad 2000 più grande, più ingombrante, più costoso e ‘adatto a Internet’, Newton Inc. avrebbe dovuto costruire un dispositivo più sottile, più piccolo, e meno capace. Ma Palm Computing ebbe una visione migliore del prodotto e realizzò un PDA di maggior successo.

The Author

Writer. Translator. Mac consultant. Enthusiast photographer. • If you like what I write, please consider supporting my writing by purchasing my short stories, Minigrooves or by making a donation. Thank you!

4 Comments

  1. Cavolo, sembrerebbe che al povero Newton non ne sia andata bene una. Davvero un’architettura scritta male e difficile da mantenere.

  2. Pingback: Frammenti di storia del Newton (2) « Autoritratto con mele

  3. Brando: Da quel che ho potuto capire, più che mal scritta, l’archittettura è stata ‘assemblata’ in maniera men che perfetta. Ma suppongo sia normale quando il team di lavoro è composto da troppe teste. Basta vedere la storia di Windows. Strati e strati che non sempre riescono a convivere pacificamente.

    Ma l’analogia con Windows finisce qui: sulla carta le cose appaiono peggiori di quanto siano all’atto pratico, ossia utilizzando il Newton quotidianamente. Da questo punto di vista, e conoscendo i dettagli che ho pubblicato qui, devo dire che il risultato finale, cioè il Newton OS, è un prodotto eccellente e, sotto certi aspetti, ancora insuperato.

    Una delle cose che mi ha sempre affascinato del Newton, del sistema e dell’interfaccia, è la sua capacità di ‘fallire in modo elegante’ — in altre parole, per come è concepito il Newton, qualsiasi evento potenzialmente disastroso (se escludiamo certi bug davvero esoterici) in realtà finisce in una bolla di sapone. Alla peggio tocca riavviare, ma è assai raro che un crash sia veramente distruttivo per i dati salvati. Non si può dire lo stesso per altri PDA (o anche smartphone)…

    Ciao!
    Riccardo

Comments are closed.