Su
segnalazione di Alessandro B.
IL
VERO PROGRAMMATORE
Il sistema piu' rapido e sicuro per distinguere un Vero
programmatore dal resto del mondo e' 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 puo'
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 e' 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 contabilita' in C
- Il Vero Programmatore crea simulatori di reti neuronali
in C
- Il Vero Programmatore starnutisce in C
- Il Vero Programmatore fa TUTTO in C
Se
per caso il C non fosse sufficiente il Vero Programmatore
lavorera' in assembler, se neppure questo fosse sufficiente
allora il lavoro non e' fattibile, ma la cosa e' impossibile,
un Vero Programmatore in C ed assembler puo' fare TUTTO,
per definizione.
PROGRAMMAZIONE
STRUTTURATA
Gli
accademici negli ultimi anni hanno stabilito, dall'alto
delle loro cattedre, che un programma e' piu' 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 percio' 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 universita') e' di prendere un sorgente di 100.000
o 200.000 linee e farlo andare il doppio piu' veloce.
In questo caso qualunque Vero Programmatore vi potra'
dire che la programmazione strutturata non serve a nulla,
quello che in realta' serve e' del talento.
Alcune rapide considerazioni del Vero Programmatore
sulla programmazione strutturata:
-
Il Vero Programmatore non ha paura di usare GOTO
- Il Vero Programmatore puo' 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 piu'
divertente.
- Il Vero Programmatore scrive del codice automodificante,
soprattutto se questo puo' salvare 20 nanosecondi all'interno
di un ciclo.
- Il Vero Programmatore utilizza l'area di memoria di
un codice gia' eseguito e che non servira' piu' come
area di memoria per i dati, ottimizzando in questo modo
lo spazio a disposizione.
- Il Vero Programmatore non ha bisogno di commenti,
il codice e' gia' autoesplicante a sufficienza.
Dopo
aver parlato di programmazione strutturata si e' anche
parlato molto di strutture di dati. Tipi di dati astratti,
stringhe, liste e chi piu' ne ha piu' ne metta.
Wirth
(il mangiatore di Quiche menzionato poco sopra) ha scritto
un intero libro [2] tentando di dimostrare che si puo'
scrivere un intero programma basandosi solo sulle strutture
di dati.
Come
ogni Vero Programmatore sa invece l'unica struttura
che serve VERAMENTE e' 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?
NO!, Unix e' 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?
Gia' meglio, crittico quel tanto che basta, facile da
modificare, se ce ne fosse necessita', 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 perche' mai per compilare
un programma uno debba staccare le mani dalla tastiera
e cliccare su un menu quando e' tanto semplice battere:
CL
pippo.c -k -iC:\gnu\c\all -q -w -e -r +t -y +cvb +f
-g +g +p =l /f /a /s
Comunque
il Vero Programmatore ha una sola nostalgia: il sistema
IBM OS/370.
Questo
era infatti il SO che qualunque Vero Programmatore vorrebbe
vedere 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 e' successo.
Un
Grande Programmatore poi sapra' i codici a memoria,
mentre un Grandissimo Programmatore potra' trovare l'errore
osservando 6 mega di dump senza neppure usare un calcolatore
esadecimale...
L'OS/370
e' VERAMENTE un SO potente, infatti e' possibile distruggere
giorni e giorni di lavoro con la semplice pressione
di un tasto. Questo incoraggia l'attenzione sul lavoro
e forma una mentalita' che servira' 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 gia' piu'
che sufficiente.
Ma
purtroppo adesso i computer non hanno piu' tastiere
esadecimali, come pure non hanno piu' 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 del- l'hard disk, e lo potevano riscrivere
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 Vero Programmatore.
Uno dei migliori Veri Programmatori che abbia mai conosciuto
e' 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 e' che se un tastierino ed una stampante
possono far comodo un Vero Programmatore puo' arrangiarsi
anche con solo un telefono.
Un
altro tool fondamentale e' un buon text editor. Molti
dicono che il migliore sia quello della Xerox di Palo
Alto, ma, come gia' 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 e' quello che ottieni) si applica
ai computer malissimo, cosi' come si applica alle donne.
Quello
che un vero programmatore vuole e' in effetti qualcosa
di piu' complesso, che implementi la filosofia del "You
asked for it, you got it !!!" (YAFIYGI, avrai solo quello
che chiedi).
Insomma,
l'editor perfetto e' il TECO.
Alcuni
hanno osservato che una linea di comandi per TECO assomiglia
molto di piu' al rumore sulle linee telefoniche che
ad una linea di comandi, ed in effetti uno dei giochi
piu' divertenti da fare e' quello di scrivere il proprio
nome sulla linea di comando e vedere cosa succede.
Inoltre
ogni piccolo errore avra' 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 e' molto riluttante
a editare un programma funzionante per dargli gli ultimi
ritocchi. E sempre per questa ragione un Vero Programmatore
trova piu' semplice fare le modifiche finali utilizzando
un programma come lo Zap.
Alcuni
Veri Programmatori utilizzano lo Zap stesso come editor,
altri scrivono il programma direttamente in codice eseguibile,
ma e' forse esagerato.
Procedendo
su questa linea il risultato e' che tra il codice sorgente
e quello che in effetti c'e' scritto su disco c'e' una
discrepanza sempre maggiore, con il risultato che il
lavoro e' sempre piu' sicuro, perche' solo un Vero Programmatore
potra' lavorarci sopra in modo proficuo, nessun mangiatore
di Quiche potra' fare manutenzione, minimizzando cosi'
i rischi di malfunzionamenti ulteriori del programma.
Questa e' 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 e' inutile e deviante.
- Il Vero Programmatore se possibile legge i manuali
in lingua originale, anche se questo a volte pone dei
problemi di reperibilita'.
- Il Vero Programmatore non colleziona libri di raccolte
di algoritmi. Questo perche' e' piu' 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 trovera' quello che cerca.
Se
nelle vicinanze del terminale sono presenti piu' di
5 manuali ci sono delle forti probabilita' 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
e' in grado di capire quello che dice il Debug.
- Compilatori ottimizzanti. L'ottimizzazione del programma
scritto dal Vero Programmatore e' gia' il massimo, e
percio' altre modifiche non farebbero altro che peggiorare
la situazione.
Vai
alla parte 2
|