La storia di Mel
# La storia di Mel

La storia di Mel (in inglese The Story of Mel) è un meme della cultura informatica il cui protagonista è il personaggio di Mel Kaye, archetipo del Vero programmatore.

Kaye era inizialmente un programmatore della Royal McBee Computer Corporation. Ed Nather descrisse le abilità di programmazione di Mel in un post su Usenet. Anche se inizialmente scritta in prosa, la storia scritta da Nather fu in seguito tradotta in versi liberi in molti siti.

In base a quanto scritto in appendice del Jargon File dove la storia fu trovata, Kaye è (o era) in effetti una persona realmente esistita. In un documento del FOLDOC gli viene riconosciuto il merito di aver scritto la maggior parte del codice per il computer Royal McBee LGP-30; in particolare Kaye scrisse il codice del boot loader di tale computer.

## La storia di Mel

L'articolo di Ed Nather su Usenet "La storia di Mel" racconta dell'abilità straordinaria nel programmare di un suo ex collega, "Mel", alla Royal Mc Bee Computer Corporation. Si sa poco di Mel Kaye, se non che gli si accredita di aver fatto il grosso della programmazione per il compilatore ACT-1 per il computer Royal McBee LGP-30 nel 1959. Nella storia di Nather, Mel è ritratto come facile all'evitare le ottimizzazioni degli assemblatori, favorendo una codifica minuziosa pronta ad avvantaggiarsi di comportamenti poco o non documentati dell'hardware, ad esempio considerando la velocità di rotazione dei tamburi di memoria dello LGP-30 per evitare di introdurre cicli di attesa nel codice ed avere un accesso più efficiente alla memoria.

Nella storia si parla del lavoro di Nather per portare un programma per il black jack scritto da Mel dal LGP-30 al nuovo RPC-4000. I dirigenti dell'ufficio marketing avevano chiesto a Mel di modificare il programma in modo che il giocatore avesse maggiori possibilità di vincere, ma con sua somma delizia Mel scrisse accidentalmente del codice che peggiorava le possibilità di vincere del giocatore.

Dopo che Mel lasciò l'azienda, chiesero a Nather di correggere il bug. Esaminando il codice Nather si accorse che quello che a prima vista sembrava un loop infinito era in realtà codificato in modo da sfruttare un errore di carry-overflow in grado di trasformare il loop in una istruzione di salto alla parte successiva del codice. Questo impressionò Nather a tal punto da portarlo a rinunciare al compito di correggere il bug.

