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.
Pingback: Frammenti di storia del Newton (2) « Autoritratto con mele