Charles Simonyi, la metaprogrammazione

Questa settimana continuiamo con la serie di post (secondo) relativo a Charles Simonyi, papà di Microsoft Office.

La Metaprogrammazione

Oltre all’intenso lavoro al PARC, Simonyi è impegnato con il proprio dottorato che lo porta ad esplorare il mondo della “meta-programmazione”. Pensata per migliorare la produttività dei programmatori, l’idea è frutto della volontà di infrangere la più famosa legge dell’ingegneria del software, la Legge di Brooks:

“L’aggiunta di manodopera [risorse] a un progetto di software in ritardo aggiunge nuovo ritardo”

La legge viene formulata da Brooks dopo aver lavorato negli anni ’60 come manager di un progetto dedicato allo sviluppo di un software di scrittura per l’IBM System 360. Nel suo libro “The Mythical Man-Month” (1975), Brooks osserva che il lavoro procede più lentamente nei grandi gruppi a causa dei “costi di coordinazione”, ovvero il tempo perso dai programmatori per condividere le proprie attività.


Mythical man-month

Alla luce di queste osservazioni, Simonyi sviluppa l’idea della “meta-programmazione” (esplicitata poi nel 1977 in “Meta-Programming: a Software Production Method”) nella quale un programmatore capo, o “metaprogrammatore”, crea un prodotto e ne definisce tutte le caratteristiche, passando poi il progetto al nucleo di programmatori che dovrebbero implementarlo. Simonyi voleva aggirare la Legge di Brooks proibendo ai tecnici di parlare tra loro e instradando tutte le comunicazioni mediate dal metaprogrammatore.
L’occasione si presenta quando Lampson realizza che è ormai necessario sviluppare la “Killer Application” per quanto realizzato al PARC, ovvero un word processor completamente diverso da quanto visto fino ad allora. L’idea è quella di utilizzare proprio i principi della “meta-programmazione” per realizzare in tempi ragionevoli il nuovo software, e Simonyi accetta la sfida.

Il giovane ingegnere ungherese è però un tipo pragmatico e decide di dar vita a due progetti paralleli: Alpha e Bravo (con riferimento alla tipica fonetica militare Alpha, Bravo, Charlie, ecc). Il primo è basato sulla meta-programmazione pura e portato avanti da un team di studenti (non avendo la possibilità di far assumere nuovi tecnici), mentre il secondo è basato su un approccio classico e su un precedente progetto del PARC realizzato da Jay S. Moore che, tramite Interlisp (ambiente di sviluppo basato su Lisp), aveva definito in dettaglio come caricare efficacemente in memoria un intero documento.

Nonostante le sue le sue idee sulla meta-programmazione si rilevano fallimentari, Simonyi riesce (attraverso il secondo team) a portare a termine il progetto, realizzando il primo elaboratore di testi WYSIWYG (pronunciato wizzywig).  Il nuovo wordprocessor mantiene come nome il proprio codename BRAVO e rappresenta una rivoluzione senza precedenti visto che i rudimentali software allora esistenti costringevano gli utenti a districarsi tra una miriade di codici di formattazione tutt’altro che immediati.

Bravo su ALTO

Bravo, invece, consente di dimenticarsi di essi, sostituendoli con una visualizzazione “formattata” del testo in grado di mostrare il documento esattamente (beh, più o meno visto i 72dpi del monitor ed i 300dpi della neonata stampante laser) come sarebbe stato stampato.
Inoltre, proprio durante una sua dimostrazione nasce l’acronimo WYSIWYG: infatti un dirigente di CitiBank, per evidenziare il proprio stupore, cita una frase del vivace personaggio Geraldine dell’attore comico Flip Wilson:

What you see is what you get! (Ciò che vedi è ciò che ottieni).

Di li in avanti “WYSIWYG” accompagnerà tutti i software che permettono di realizzare digitalmente una copia fedele di quanto verrà riprodotto con il processo di stampa.

Bravo ebbe addirittura una fase di sviluppo che oggi chiameremmo “Release Candidate”: parenti e amici dei ricercatori del PARC cominciarono ad usarlo per stampare notiziari scolastici e tesi universitarie. La moglie di Lampson realizzarò con Bravo la propria tesi e Simonyi fece lo stesso per il suo dottorato.

Purtroppo il PARC cominciò ben presto a soffrire l’incapacità del management XEROX di trasformare il risultato delle ricerche in prodotti di successo e Simonyi avvertì questo disagio più di altri, vista la sua propensione a realizzare progetti concreti che potessero realmente avere un’influenza sulla vita delle persone. Proprio in questo periodo l’ingegnere ungherese resta affascinato da VisiCalc (per Apple II), il primo foglio elettronico per personal computer che, chiunque, poteva semplicemente comprare ed utilizzare.

“I realised I was a snob was when I saw VisiCalc running on the Apple. The word processing programs like that [of the time] I never took seriously because we were so much better on the Alto. But when I saw VisiCalc I said ‘wow’”

[Capii quanto ero snob quando vidi VisiCalc in esecuzione sull’Apple. Non avevo mai preso in considerazione (paragone) gli altri wordprocessor perché eravamo avanti con Alto. Ma quando vidi VisiCalc esclamai “wow”].


VisiCalc su Apple II

Convinto che anche Bravo dovesse seguire una strada simile e che Xerox non avrebbe mai trasformato i risultati del PARC in prodotti di massa, Simonyi chiede a Metcalfe di indicargli le figure più promettenti dell’emergente industria dei personal computer, in cima alla quale c’era il giovanissimo Bill Gates.

Il prossimo post sarà interamente dedicato all’arrivo di Simonyi in Microsoft e alla nascita di Office. A venerdì!

Press ESC to close