Newsgroup: it.hobby.umorismo
Titolo: Il VeroProgrammatore

Il vero programmatore 
Tornando indietro ai vecchi e gloriosi giorni dell'informatica 
primordiale era relativamente facile distinguere tra veri uomini e 
ragazzini (nella letteratura classica [1] la distinzione è tra "veri 
uomini" e 
"mangia-quiche").  Durante quei tempi i Veri Uomini erano gli unici che 
si intendevano di computer, gli altri (i ragazzini o "mangiatori di 
quiche") erano quelli che di computer non se ne intendevano... I Veri 
Uomini dicevano cose come "DO 10 I=1,10" o "ABEND" (ovviamente parlando 
in lettere maiuscole, mi sembra ovvio), mentre il resto della gente 
diceva semplicemente che i computer erano cose troppo complicate per 
loro... (sempre il lavoro [1] dice appunto che non esistono cose troppo 
complicate per il vero uomo...). Ma, come in tutte le cose, i tempi 
cambiano, adesso viviamo in tempi in cui anche le vecchiette hanno dei 
computer dentro i loro forni a microonde, in cui qualunque Vero Uomo 
può essere battuto da un ragazzino di 12 anni in qualunque videogioco, 
in cui chiunque può comperare, usare e capire un computer. Il Vero 
Programmatore rischia di intraprendere la via dell'estinzione, 
sopraffatto da universitari che basano la loro vita su Mouse ed 
Icone... E' perciò necessario stabilire una netta distinzione tra Il 
Vero Programmatore ed un universitario giocatore di Pac-Man... Se 
questa distinzione sarà chiara questi giovani inesperti potranno avere 
un modello guida, un padre spirituale a cui ispirarsi. Inoltre sarà 
possibile spiegare ai datori di lavoro perché non è ne necessario ne 
giusto sostituire dei Veri Programmatori con dei giocatori di Pac Man, 
anche se il risparmio sugli stipendi sarebbe considerevole... 
 
Linguaggi 
Il sistema più rapido e sicuro per distinguere un Vero programmatore 
dal resto del mondo è considerare il linguaggio che usa: il Vero 
Programmatore programmava in FORTRAN, mentre ora programma in C. 
I mangiatori di Quiche programmano in Pascal. Da questo si deduce che 
sicuramente Niklaus Wirth era un mangiatore di Quiche e NON un Vero 
Programmatore.  Ad un Vero Programmatore non servono tutte le strutture 
ed i meccanismi del pascal, un Vero  Programmatore può essere felice 
con un perforatore di schede o un terminale a 1200 baud, un C a 
standard K&R (ANSI... a che serve, il K&R è fin troppo chiaro..), ed 
una birra...  A proposito, Kerningan e Ritchie sicuramente erano dei 
Veri Uomini... probabilmente anche dei veri programmatori... 
Il Vero Programmatore processa liste in C 
Il Vero Programmatore processa numeri in C 
Il Vero Programmatore manipola stringhe in C 
Il Vero Programmatore elabora programmi di IA in C 
Il Vero Programmatore fa contabilità in C 
Il Vero Programmatore fa TUTTO in C 
Se per caso il C non fosse sufficiente il Vero Programmatore lavorerà 
in assembler, se neppure questo fosse sufficiente allora il lavoro non 
è fattibile, ma la cosa è impossibile, un Vero Programmatore in C ed 
assembler può fare TUTTO, per definizione. 
 
Programmazione Strutturata 
Gli accademici negli ultimi anni hanno stabilito, dall'alto delle loro 
cattedre, che un programma è più facilmente leggibile se il 
programmatore utilizza particolari tecniche, strutture e costrutti. 
Ovviamente essi non sono d'accordo su quali questi costrutti e queste 
tecniche precisamente siano, e perciò le loro teorie sono discordanti 
ed erratiche. In questo modo solo alcuni mangia-Quiche si lasciano 
convincere dai loro assiomi.  
Un tipico lavoro del mondo reale (e non un lavoro teorico da 
università) è di prendere un sorgente di 100.000 o 200.000 linee e 
farlo andare il doppio più veloce. In questo caso qualunque Vero 
Programmatore vi potrà dire che la programmazione strutturata non serve 
a nulla, quello che in realtà serve è del talento.... 
Alcune rapide considerazioni del Vero Programmatore sulla 
programmazione strutturata: 
 
Il Vero Programmatore non ha paura di usare GOTO 
Il Vero Programmatore può scrivere un ciclo DO lungo 5 pagine senza  
fare confusione. 
Il Vero Programmatore usa i costrutti CASE basati su calcoli 
aritmetici, essi rendono un programma più divertente. 
Il Vero Programmatore scrive del codice automodificante, soprattutto 
se  questo può salvare 20 nanosecondi all'interno di un ciclo. 
Il Vero Programmatore non ha bisogno di commenti, il codice è già  
autoesplicante a sufficienza. 
Dopo aver parlato di programmazione strutturata si è anche parlato 
molto di strutture di dati. Tipi di dati astratti, stringhe, liste e 
chi più ne ha più ne metta... 
Wirth (il mangiatore di Quiche menzionato poco sopra) ha scritto un 
intero libro [2] tentando di dimostrare che si può scrivere un intero 
programma basandosi solo sulle strutture di dati. Come ogni Vero 
Programmatore sa invece l'unica struttura che serve VERAMENTE è 
l'array, dato che tutti gli 
altri tipi di dato altro non sono che sottoinsieme limitati di 
questi... e dato che sono limitati egli usa solo puntatori, soprattutto 
se questi rendono possibile bombare irrimediabilmente il computer, se 
no dove 
starebbe il divertimento???? 
 
Sistemi Operativi 
Che SO usa un Vero Programmatore ??? Unix ??? Noooo, Unix è qualcosa di 
simile a quello che si aspetta un vero Hacker, dato che qualunque Vero 
Programmatore non trova alcun divertimento nel tentare di indovinare 
come cavolo il comando PRINT viene chiamato questa settimana...  
La gente non fa lavori seri su Unix, lo usano soprattutto per fare 
adventure, modificare Rogue e mandarsi il tutto via UUCP.  
MS-DOS ??? Già' meglio, crittico quel tanto che basta, facile da 
modificare, se ce ne fosse necessità, facile da bombare, con tante cose 
sconosciute e strane... 
Una cosa sicuramente possiamo dire: Il Vero Programmatore non usa il 
mouse e le icone, infatti il Vero   Programmatore non capisce perché 
mai per compilare un programma uno debba  staccare le mani dalla 
tastiera e cliccare su un menu quando è tanto  semplice battere : 
  CL pippo.c -k -iC:\all -q -w -e -r +t -y +cvb +f -g +g +p =l /f /a /s 
In ogni caso il Vero Programmatore ha una sola nostalgia: il sistema 
IBM OS/370 (sigh! n.m.p.). Questo era infatti il SO che qualunque Vero 
Programmatore vorrebbe veder implementato su TUTTI i computer del 
mondo. 
Un Vero Programmatore sa che se vede comparire l'errore IJK3051 basta 
andare a vedere nel manuale del JCL per capire cosa è successo...  
Un Grande Programmatore poi saprà i codici a memoria, mentre un 
Grandissimo Programmatore potrà trovare l'errore osservando 6 mega di 
dump senza neppure usare un calcolatore esadecimale... 
L'OS/370 è VERAMENTE un SO potente, infatti è possibile distruggere 
giorni e giorni di lavoro con la semplice pressione di un tasto. Questo 
incoraggia l'attenzione sul lavoro e forma una mentalità che servirà in 
futuro, quando per distruggere giorni di lavoro saranno sufficienti tre 
tasti... 
 
 
Tool di programmazione 
Quali tool di programmazione necessita realmente un Vero 
Programmatore ??? 
In effetti, come detto prima sono sufficienti un terminale a 1200 baud 
o un lettore di schede perforate, ma anche una semplice tastiera 
esadecimale sarebbe già' più che sufficiente.  
Ma purtroppo adesso i computer non hanno più tastiere esadecimali, come 
pure non hanno più quei  magnifici pannelli frontali pieni di lucine e 
tastini che facevano tanto futuro...  
I primi veri programmatori sapevano a memoria l'intero settore di boot 
dell'hard disk, e lo potevano  iscrivere a memoria ogniqualvolta che il 
loro programma lo rovinava... 
La leggenda narra che Seymore Cray (creatore del Cray I) scrisse il SO 
del primo CDC7600 usando il pannello frontale del computer la prima 
volta che questo venne acceso. Senza bisogno di dirlo Seymore  era un 
VeroProgrammatore.  
Uno dei migliori Veri Programmatori che abbia mai conosciuto è un 
sistemista della Texas Instrument. Una volta rispose alla telefonata di 
un cliente a cui si era bombato il sistema durante il salvataggio del 
lavoro. Il Vero Programmatore rimise a posto tutto facendo scrivere le 
istruzioni per terminare il lavoro di I/O sul pannello frontale (allora 
c'erano ancora), riscrivendo i dati rovinati in esadecimale e facendosi 
dire i risultati per telefono. 
La morale della storia è che se un tastierino ed una stampante possono 
far comodo un Vero  Programmatore può arrangiarsi anche con solo un 
telefono... 
Un altro tool fondamentale è un buon text editor. Molti dicono che il 
migliore sia quello della Xerox di Palo Alto, ma, come già' detto, il  
Vero Programmatore non parla al suo computer attraverso un mouse. 
Altri preferiscono EMACS o VI, ma in effetti il concetto di WYSYWYG 
(quello che vedi è quello che ottieni) si applica ai computer 
malissimo, cosi' come si applica alle donne... 
Quello che un vero programmatore vuole è in effetti qualcosa di più 
complesso, che implementi la filosofia del "You asked for it, you got 
it !!!" (YAFIYGI, avrai solo quello che chiedi). Insomma, l'editor 
perfetto è il TECO. 
 Alcuni hanno osservato che una linea di comandi per TECO assomiglia 
molto di più al rumore sulle linee telefoniche che ad una linea di 
comandi, ed in effetti uno dei giochi più divertenti da fare è quello 
di scrivere il proprio nome sulla linea di comando e vedere cosa 
succede...  
Inoltre ogni piccolo errore avrà come risultato quello di distruggere 
il vostro programma, o, peggio, di introdurre subdoli errori che 
saranno in seguito difficilmente rintracciabili...  
Per questa ragione un Vero Programmatore è molto riluttante a editare 
un programma funzionante per dargli gli ultimi ritocchi. E sempre per 
questa ragione un Vero Programmatore trova più semplice fare le 
modifiche finali utilizzando un programma come lo Zap.  
Alcuni Veri Programmatori utilizzano lo Zap stesso come editor, ma è 
forse esagerato...  
Procedendo su questa linea il risultato è che tra il codice sorgente e 
quello che in effetti c'è scritto su disco c'è una discrepanza sempre 
maggiore, con il risultato che il lavoro è sempre più sicuro, perché 
solo un Vero Programmatore potrà lavorarci sopra in modo proficuo, 
nessun mangiatore 
di Quiche potrà fare manutenzione, minimizzando cosi' i rischi di 
malfunzionamenti ulteriori del  programma. Questa è SICUREZZA....  
Altri tool importanti sono le documentazioni su cui il vero 
programmatore basa gran parte del suo lavoro: 
Il Vero Programmatore non legge mai i manuali introduttivi, bastano 
ed    avanzano i Reference Manual.  
Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo 
è   inutile e deviante. 
Il Vero Programmatore se possibile legge i manuali in lingua 
originale,   anche se questo a volte pone dei problemi di reperibilità. 
Il Vero Programmatore non colleziona libri di raccolte di algoritmi.  
Questo perché e più lento cercare l'algoritmo in 3000 pagine di 
manuale  che scriverlo di getto. 
Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono  
sufficienti i data sheet dei microprocessori  
Il Vero Programmatore non scrive MAI i manuali dei programmi che fa,  
non ne ha il tempo materiale. 
Il Vero Programmatore generalmente ha da qualche parte la 
documentazione completa del SO su cui lavora, pubblicata dalla casa che 
ha fatto il SO, ma sa che SICURAMENTE nelle 3500 pagine che in media 
compongono la documentazione non troverà quello che cerca. Se nelle 
vicinanze del terminale sono presenti più di 5 manuali ci sono delle 
forti probabilità che NON sia un Vero Programmatore. 
Alcuni Tool NON usati da un Vero Programmatore: 
Preprocessori di linguaggio.  
Traduttori di linguaggio 
Full Screen Debugger a livello sorgente. Il Vero Programmatore è in 
grado   di capire quello che dice il Debug... 
Compilatori ottimizzanti. L'ottimizzazione del programma scritto dal 
Vero   Programmatore è già' il massimo, e perciò altre modifiche non 
farebbero  altro che peggiorare la situazione. 
 
Il lavoro del vero programmatore 
In generale il Vero Programmatore non fa lavori semplici come gestione 
di indirizzari o programmi gestionali, ecco alcuni dei lavori più 
adatti ai veri programmatori:  
Il Vero Programmatore scrive programmi per la simulazione di una 
guerra   termonucleare per l'esercito.  
Il Vero Programmatore lavora per lo spionaggio, per decrittare le 
trasmissioni in cifra del nemico. 
E' in gran parte dovuto al lavoro dei Veri Programmatori che gli 
americani  sono arrivati sulla luna. 
Il Vero Programmatore programma i sistemi guida di satelliti e missili. 
In ogni caso il Vero Programmatore lavora su progetti molto importanti 
o molto ben pagati. 
 
 
Il vero programmaore mentre gioca 
Il generale il Vero Programmatore gioca nello stesso modo in cui 
lavora: con i computer. 
In generale lo stesso lavoro è un gioco, ed alla fine del mese il Vero 
Programmatore è sempre  abbastanza stupito di ricevere un compenso per 
quello che, a tutti gli effetti, è per lui un divertimento. 
Anche se non lo dirà mai a voce alta...  Occasionalmente il Vero 
Programmatore uscirà dall'ufficio per prendere una boccata d'aria e 
farsi una birra, ecco alcuni sistemi per riconoscere un Vero 
Programmatore fuori dal suo posto di lavoro: 
Ad un party i Veri Programmatori sono quelli che stanno in angolo 
parlando  di Sistemi Operativi, mentre di fianco a loro passano ragazze 
che si  fermano, ascoltano per alcuni secondi e poi, dato che non 
capiscono una  parola, se ne vanno. A volte un vero Programmatore 
incontra una Vera   Programmatrice... vi risparmio per decenza il 
racconto di come si svolgono   i fatti.... 
Ad una partita di football il Vero Programmatore è quello che controlla 
gli  schemi delle squadre basandosi su quelli disegnati dal suo 
programma su  di un foglio 11x14. 
Sulla spiaggia il Vero Programmatore è quello che disegna flow chart  
sulla sabbia. 
 
 
 
 
 
 
L'habitat del vero programmatore 
Dal momento che un vero programmatore è, per l'azienda che lo usa, 
generalmente molto costoso, vediamo come far per farlo rendere al 
meglio sul posto di lavoro: Il Vero Programmatore vive davanti ad uno o 
più monitor, attorno, sopra, dietro e sotto questi terminali si trovano 
generalmente le 
seguenti cose:  
I listati di TUTTI i programmi a cui il Vero Programmatore ha mai 
lavorato, accatastati, in ordine più o meno cronologico, su ogni 
superficie piatta  disponibile intorno. 
6 o più tazze di caffè, quasi sempre fredde, ed alcune con alcuni 
mozziconi  di sigaretta galleggianti. 
Attaccato al muro c'è un ritratto di Spock con in mano l' enterprise  
stampato con una vecchia stampante a margherita. 
Sparsi per terra ci sono pacchetti vuote di noccioline e vaccate 
simili. 
In generale un Vero Programmatore può lavorare anche 30 o 40 ore di 
fila, anzi, di solito lavora molto megli sotto sforzo. 
Fino a qualche tempo fa si concedeva dei pisolini mentre il computer 
compilare il programma, ma purtroppo il diffondersi di computer e 
periferiche veloci ha reso questa pratica difficile. 
In generale un Vero Programmatore se ha 5 settimane per terminare un 
programma passa le prime 4 cincischiando con aspetti secondari, ma 
interessanti, del programma, mentre il grosso del lavoro viene fatto in 
una settimana di lavoro ininterrotto. 
Questo provoca sempre grosse preoccupazioni al principale che teme 
sempre che il lavoro non sia mai pronto in tempo, ed offre al Vero 
Programmatore una buona scusa per non scrivere la documentazione. 
 
 
Varie ed eventuali  
 Il Vero Programmatore a volte può scordare il nome della moglie o 
della   ragazza, ma sa a memoria il codice ASCII.  
Il Vero Programmatore non si cura della tastiera, le sue dita si 
adattano automaticamente a qualunque layout.  
Il Vero Programmatore sa che anche avendo 8 mega di RAM questa non 
sarà  mai abbastanza, e perciò tenta di fare programmi piccoli. 
Il Vero Programmatore tiene sempre i backup da quando ha dovuto 
riscrivere  327000 linee di assembler 68020. 
Il Vero Programmatore scrive programmi di pubblico dominio, anche se di 
solito sono programmi talmente specialistici che serviranno solo ad 
altre  tre persone al mondo oltre a lui. 
 
Altri corollari 
Il Vero Programmatore si trovava a suo agio con il Fortran in quanto  
consentiva la programmazione a spaghetti senza limitazioni.  
Va comunque detto che il Vero Programmatore è in grado di scrivere 
programmi a spaghetti in qualsiasi linguaggio. In questo senso, il C va 
a  pennello per la sua capacità di scrivere programmi Write-only che 
nessuno,   a parte un altro Vero Programmatore, sarà mai in grado di 
decodificare.[M] 
Il Vero Programmatore non mette mai commenti perché a suo parere il  
codice è  autodocumentante. Questo vale anche per i dump esadecimali 
di  codice assembler. 
Nel tempo libero, il Vero Programmatore va abbastanza spesso in 
discoteca,  ma si limita ad osservare il gioco di luci. Ultimamente, 
viene stranamente  attratto dal terminale del controllore laser.  
Le Vere Programmatrici esistono in ragione di 1 per ogni 256 Vero  
Programmatori, come tale la probabilità di incontrarne una è  
estremamente bassa. 
Il Vero Programmatore ha scarsa considerazione degli utenti, ritenuti 
ad  un livello troppo basso. La probabilità di trovare un utente 
competente è stimata inferiore a quella di trovare una Vera 
Programmatrice. 
 
ErrataCorrige 
l Vero Programmatore non usa commenti: se e` stato difficile da 
scrivere,   deve essere difficile da leggere. Ma se e` un VERO 
PROGRAMMATORE lo legge   ugualmente con facilita`. 
Il Vero Programmatore usa il C, e QUINDI usa anche Unix e i 
Preprocessori.  Unix, almeno nelle prime versioni, è il vero sistema 
operativo contemporaneo  per il VP, è l'unico che consente ancora di 
azzerare un intero file system  con un comando di 7 lettere blank 
compresi: rm -r /  
OS/370 era seriamente migliore, ma non bastava battere un tasto per  
perdere tutto, era sufficiente sbagliare la posizione di un 
blank.                                
PsyDuck
"Se la vita non ti sorride, è inutile che continui a fargli il 
solletico!
Se ti sorride, allora ha una paresi"
--
Posted from 156.54.253.2 by way of 
smtp4.libero.it
 [193.70.192.54] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG


-----------------------------------
E' sbagliato pensare di risolvere
grossi problemi con il solo ausilio
delle patate fritte.
La Vita, L'Universo e Tutto Quanto
-----------------------------------

eh eh ... vecchia ma sempre divertente....    !