c’era una volta( int argc char ** argv€¦ · LINGUAGGIO FIGURATO (metafore, esempi,...
Transcript of c’era una volta( int argc char ** argv€¦ · LINGUAGGIO FIGURATO (metafore, esempi,...
c’era una volta(c’era una volta(int argcint argc,, charchar ****argvargv))
Parma, 14-15 aprile 2004
Marco Malaspina
Un “buon testo” è un testo “ben scritto”?Un “buon testo” è un testo “ben scritto”?Parma, 14-15 aprile 2004
Slide 01
Cambiando contesto:
un buon programma è un programma ben scritto?
Anzitutto, un buon programma è un programma che
FUNZIONA
Poi, di solito, se è “ben scritto” è più probabile che funzioni bene. Però, è una condizione né necessaria né sufficiente.
Anche un buon testo è un testo che FUNZIONA.Ma cosa significa “funzionare”, per un testo? Vediamone alcuni…
Per decidere se un testo funziona…Per decidere se un testo funziona…Parma, 14-15 aprile 2004
Slide 02
…osserviamone gli effetti più evidenti:…osserviamone gli effetti più evidenti:MANUALE
UTENTE DI UNA CALCOLATRICE
IL LETTORERIESCE A USARE
TUTTE LE FUNZIONI CHE GLI SERVONO
ROMANZO DIHARRY POTTER
J.K. ROWLEY DIVENTA LA
DONNA PIÙ RICCA DEL REGNO UNITO
TESI DILAUREA
L’AUTOREPRENDE OTTO
PUNTI ALLADISCUSSIONE
SI GUADAGNALA COPERTINA
DI SCIENCE
ARTICOLOSCIENTIFICO
Scopo e destinatarioScopo e destinatarioParma, 14-15 aprile 2004
Slide 03
• Non ci sono regole generali: un testo funziona se raggiunge il PROPRIO scopo
• Lo SCOPO di un testo non dipende solo dall’argomento, ma dalla relazione fra ARGOMENTO e DESTINATARIO
• ����Gli informatici,in questo, hanno unvantaggio:
SONO ABITUATISONO ABITUATIA SCRIVEREA SCRIVERESECONDO LESECONDO LEREGOLE DELREGOLE DELDESTINATARIO DESTINATARIO
… ma non tutti sono come gli informatici…… ma non tutti sono come gli informatici…Parma, 14-15 aprile 2004
Slide 04
SI SENTE SPESSO DIRE CHE STAMPA E TELEVISIONE
HANNO OFFERTO UN’IMMAGINEDISTORTA DELLA RIFORMA
SCOLASTICA…
Parma, 14-15 aprile 2004
Slide 05
La difficoltà non sta nell’argomento…La difficoltà non sta nell’argomento…Parma, 14-15 aprile 2004
Slide 06
Per controllare se un elettroneelettrone ha
attraversato una barriera, dobbiamo localizzarlo con una precisione almeno
uguale allo spessore della barriera stessa. Tale misura imprime
all’elettrone una quantità di moto tanto più grande
quanto più è sottile la barriera. Oltre un
certo limite, la spinta è sufficiente per
valicare la barriera. Abbiamo così
l’effetto tunnel.
Un’aziendaazienda che si rispetti tiene un libro contabile molto aggiornato e preciso, e non permetterebbe mai agli impiegati di prendere a prestito a fini propri somme di denaro anche piccole, nemmeno sotto la promessa di renderle in toto e in tempi brevissimi. Un’azienda quantisticasarebbe invece molto più tollerante, e chiuderebbe un occhio, ponendo solamente un limite superiore al prodotto dell’entità per la durata del prestito.
Consideriamo un’automobileautomobile che si
sposti lungo una strada pianeggiante, incontri un
cavalcavia e rimanga senza benzina all’inizio
della salita, e chiediamoci se riuscirà a passare
dall’altra parte. […]Per un’automobile della
massa di 1 tonnellata e un cavalcavia con un
dislivello di 10 m, la durata del prestito
energetico non può superare 10-41 s. L’effetto
tunnel non si presta a snellire il traffico automobilistico.
da Tullio Regge, Infinito, Mondadori 1994
Essere umano: destinatario esigente…Essere umano: destinatario esigente…Parma, 14-15 aprile 2004
Slide 07
Non si accontenta di RISOLVERE il messaggio
• Vuole COMPRENDERLO• NON vuole ANNOIARSI• NON vuole PERDERE TEMPO• Vorrebbe “DIVERTIRSI”
…molto più esigente di un compilatore…molto più esigente di un compilatore
E HA RAGIONE!
Quale linguaggio comprende meglio?
• LINGUAGGIO FIGURATO (metafore, esempi, similitudini)• LINGUAGGIO CHE SUSCITA EMOZIONI ���� AZIONE
Comunicare con stile, comunicare con Comunicare con stile, comunicare con lolo stilestileParma, 14-15 aprile 2004
Slide 08
Feynman e l’O-ring del Challenger
Da A Structure for DNA, l’articolo di Watson e Crickapparso sul numero 171 di Nature il 2 aprile 1953:
[…] Non è sfuggito alla nostra attenzione che
l’accoppiamento specifico che abbiamo postulato
suggerisce immediatamente un possibile meccanismo di
replicazione del materiale genetico.
Testi scientifici vs. altri testiTesti scientifici vs. altri testiParma, 14-15 aprile 2004
Slide 09
•• QUANTIFICANOQUANTIFICANO PARECCHIOPARECCHIO•• SONO QUASI SEMPRE IN SONO QUASI SEMPRE IN INGLESEINGLESE
•• PRESENTANO STRUTTURE DESCRITTIVE RICORRENTI:PRESENTANO STRUTTURE DESCRITTIVE RICORRENTI:
•• DEFINIZIONI DEFINIZIONI (simili ai (simili ai NOMINOMI del linguaggio comune)del linguaggio comune)•• PROPRIETPROPRIETÀÀ (simili agli (simili agli ATTRIBUTIATTRIBUTI del linguaggiodel linguaggiocomune)comune)
•• PROCESSIPROCESSI (simili ai (simili ai VERBIVERBI del linguaggio comune)del linguaggio comune)
•• SI AVVALGONO SPESSO DI SI AVVALGONO SPESSO DI MEZZI NON VERBALIMEZZI NON VERBALI
Alcune peculiarità…Alcune peculiarità…
Strumenti: e non solo per scrivereStrumenti: e non solo per scrivereParma, 14-15 aprile 2004
Slide 10
• ����Gli informatici hanno un secondo vantaggio: SANNO USARESANNO USAREGLI STRUMENTI CHE SERVONO PER CREARE TESTI EFFICACIGLI STRUMENTI CHE SERVONO PER CREARE TESTI EFFICACI
DEFINIZIONI EPROPRIETÀ
PROPRIETÀ EPROCESSI
Alcuni trucchi per rendere un testo illeggibileAlcuni trucchi per rendere un testo illeggibileParma, 14-15 aprile 2004
Slide 11
• ����Gli informatici hanno un terzo (!) vantaggio: SANNO BENISSIMOSANNO BENISSIMOCOME RENDERE UN TESTO INCOMPRENSIBILECOME RENDERE UN TESTO INCOMPRENSIBILE
ROEDY GREEN, AUTORE DI
HOW TO WRITE UNMAINTAINABLE CODE
(http://www.mindprod.com/unmain.html)
È UNO DI LORO
GODIAMOCI ALCUNI SUOI CONSIGLI,IN TESTI INFORMATICI E NON…
NOMI NOMI -- I nomi di variabili sono come il vetro…I nomi di variabili sono come il vetro…
Slide 12
Parma, 14-15 aprile 2004
Scegliere un nome per una variabile è come scegliere il nome perun figlio: non occorre che abbiano un senso!Pensate piuttosto ai vostri divi della TV. E, quando potete, riciclateli!
int quante_cifre_ha_patrick(int patrick) {
int ascanio;char katia[32];
for(ascanio=0; ascanio< patrick; ascanio ++)sprintf(katia, “So contare fino a %d\n”, ascanio);
ascanio = strlen(katia)-strlen(“So contare fino a \n”); return(ascanio);
}
Lo diceva anche il buon vecchio Lo diceva anche il buon vecchio WillWill……
Slide 13
Parma, 14-15 aprile 2004
What's in a name? That which we call a rose
By any other word would smell as sweet
… ma un vostro concittadino non è d’accordo:… ma un vostro concittadino non è d’accordo:
Slide 14
Parma, 14-15 aprile 2004
da Leo Ortolani, Venerdì 12
Un nome, un destino
Importanza dei “nomi”: titoli e “attacchi”Importanza dei “nomi”: titoli e “attacchi”
Slide 15
Parma, 14-15 aprile 2004
THERE’S THERE’S PLENTY OF ROOM AT THE BOTTOMPLENTY OF ROOM AT THE BOTTOM
titolo scelto da Feynman per il suo talkdel 1959 sulle nanotecnologie Le 5 W del
giornalismoanglosassone:
NEL MEZZO DEL CAMMIN DI NOSTRA VITANEL MEZZO DEL CAMMIN DI NOSTRA VITA
MIMI
RITROVAIRITROVAI
PER UNA SELVA OSCURAPER UNA SELVA OSCURA
CHCHÉÉ LA DIRITTA VIA ERA SMARRITALA DIRITTA VIA ERA SMARRITA
WHEN ?WHEN ?
WHO ?WHO ?
WHAT ?WHAT ?
WHERE ?WHERE ?
WHY ?WHY ?
attacco scelto da Dante per il suo poema del XIV secolo sull’aldilà
CONTENUTI CONTENUTI –– Documentate l’ovvio…Documentate l’ovvio…
Slide 16
Parma, 14-15 aprile 2004
counter++; // increment counter here: counter=counter+1
Scrivere l’ovvio, o il suo contrario (dare per scontato ciò chenon lo è) è ciò che accade quando non si pensa al destinatario.
Un esempio…
Slide 17
Parma, 14-15 aprile 2004
MOST FAQ: Quanto MOST FAQ: Quanto dev’esseredev’essere lungo “il testo” ?!lungo “il testo” ?!
Slide 18
Parma, 14-15 aprile 2004
È UN TIPICO ESEMPIO DI DOMANDA MAL POSTA:
RIFORMULIAMOLA: QUANTO DEVE ESSERE CORTO “IL TESTO” ?
CONSEGUENZE DELLA DOMANDA MAL POSTA:
• SI PERDE IL 45% DEL TEMPO AD ALLUNGARE UN TESTOCHE SI GIUDICA CORTO
• POI, QUANDO CI VIENE INEVITABILMENTE IMPOSTO DITAGLIARLO, SI PERDE UN ALTRO 45% DEL TEMPO A TENTARE DIACCORCIARLO
PER QUESTE DUE ATTIVITÀ, ALLUNGARE E ACCORCIARE, I SUGGERIMENTI DI ROEDY SONO PREZIOSISSIMI…
LA NOBILE ARTE DI ALLUNGARE E TAGLIARE…LA NOBILE ARTE DI ALLUNGARE E TAGLIARE…
Slide 18
Parma, 14-15 aprile 2004
ALLUNGAREALLUNGARE: si procede esattamente come con il codice.
Invece di richiamare moduli e funzioni, si fa un cut-and-paste, poi li si modifica leggermente. Molto utile nelle società in cui si viene pagati un tanto a linea.
Nei testi, quest’attivitàrichiede una certa abilità nel formulare frasi vuote o ridondanti (“due diversi modi di affrontare il problema”, “lo sperma maschile”, …).
ACCORCIAREACCORCIARE: “Cercate di infilare tutto in un’unica linea. Togliete gli spazi e i ritorni a capo. Ricordate
che un buon programmatore riesce senza difficoltà a
raggiungere il limite di 255 caratteri per linea imposto dalla
maggior parte degli editor. Tra l’altro, mantenendo le sequenze di
if-then-else nella stessa linea, c’èanche il vantaggio che diventano
virtualmente inattaccabili da qualsiasi debugger…”
Nei testi, basta per esempio eliminare i paragrafi e ridurre la
dimensione del font, no?
… E A PROPOSITO DI DEBUGGING:… E A PROPOSITO DI DEBUGGING:
Slide 18
Parma, 14-15 aprile 2004
Non rileggete MAI il testo che avete scritto o modificato.
Non fatelo MAI revisionare o correggere da nessuno.Soprattutto se è un testo in inglese e state ospitando un’amica di York.
Lasciate al lettore il brivido del primo assaggio. Ve ne sarà grato.
Rileggere un testo è come testare il codice: un’attività da codardi.Studi recenti hanno inoltre mostrato che, eliminando la fase di rilettura, si finisce molto più in fretta, e si può quindi consegnare prima.
CUESTA PRESENTAZIONE, PRESEMPIO, NON LCUESTA PRESENTAZIONE, PRESEMPIO, NON L’’O MAI RILETTA!O MAI RILETTA!