Rivoluzionario per caso

Rivoluzionario per casoSolo un consiglio: leggetelo!

«Sono convinto che l’informatica abbia molto in comune con la fisica. Entrambe si occupano di come funziona il mondo a un livello abbastanza fondamentale. La differenza, naturalmente, è che mentre in fisica devi capire come è fatto il mondo, in informatica sei tu a crearlo. Dentro i confini del computer, sei tu il creatore. Controlli ““ almeno potenzialmente ““ tutto ciò che vi succede. Se sei abbastanza bravo, puoi essere un dio. Su piccola scala».

Finlandia, primi anni Novanta. Un giovane studente dell’Università  di Helsinki alle prese con il suo nuovo computer si lancia ““ un po’ per sfida un po’ per gioco un po’ per caso ““ nella creazione di un nuovo sistema operativo. Non è un’impresa facile: il sistema operativo è il programma che sta sotto tutti gli altri programmi e mette in comunicazione il «cuore» della macchina (il microprocessore) con le varie periferiche.
Dieci anni dopo Linux, il sistema operativo creato da Linus Torvalds e migliorato grazie a un gigantesco sforzo collettivo, viene utilizzato in tutti i continenti (Antartide compresa) e nelle basi spaziali della NASA, gestisce la maggior parte dei server che diffondono Internet e costituisce la più seria minaccia allo strapotere della Microsoft. Per capire tutta la portata di questo autentico miracolo, bisogna ricordare che Linux è un programma open source: cioè gratuito e liberamente accessibile, ed è il frutto dei miglioramenti escogitati (gratuitamente) in questi anni da migliaia di programmatori in tutto il mondo.
Linus Torvalds ““ un ragazzo come mille altri, ma con più di un pizzico di genio ““ è dunque il protagonista e l’artefice di un’autentica rivoluzione: non solo per il successo di Linux, ormai adottato da molti colossi dell’industria a cominciare da IBM, ma anche per il modo in cui è stato raggiunto, senza rinunciare agli ideali altruistici degli inizi.
In Rivoluzionario per caso è lo stesso Linus Torvalds, il «benevolo dittatore» che gode della fiducia dell’intera comunità  Linux a raccontare la nascita e lo sviluppo di Linux: le intuizioni e il duro lavoro degli inizi, le polemiche e gli slanci collettivi, il boom e la fama, sempre narrati con una contagiosa autoironia ““ quella che gli permette di dirci cose importanti (compresa la sua teoria sul senso della vita) ma sempre con il sorriso sulle labbra.

Jack docet (vol. 1)

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 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 dicevano semplicemente che i computer erano cose troppo complicate per loro… (sempre il lavoro 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…

È 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 è gia 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 sottoinsiemi limitati di questi… e dato che sono limitati perchè non usare i 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. 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…