domenica 26 settembre 2010

Domanda D'esame (il candidato non ha risposto)

Ad un esame orale è stato chiesto: --Mi scriva un semplice programma in C++ (compilabile ed eseguibile) che scriva "ciao mondo" su console...--

l'allievo ha pensato che il problema fosse estremamente facile da risolvere per un laureando in informatica, ma poi il professore ha continuato:

--...e lo faccia senza utilizzare neppure un punto e virgola!--

A questo punto l'allievo è andato nel panico e non è riuscito a risolvere il problema.

Morale. Non pensare mai attraverso schemi predefiniti, ma cercare sempre nuove soluzioni a problemi anche semplici all'apparenza.

Comunque la soluzione ovvia è nella figura qui sotto.


mercoledì 9 giugno 2010

SE Radio

Stufi della solita musica?
Non sapete più cosa caricare sul vostro iPod?

Bene, qui c'è musica per le vostre orecchie: http://www.se-radio.net/

Luca.

giovedì 7 gennaio 2010

Con che occhiali stai guardando il mondo?

Molto spesso vivendo in una realtà industriale, mi imbatto in una visione piuttosto limitata per quanto riguarda la programmazione. Purtroppo questa limitazione è così insita nel processo di sviluppo software a livello industriale che non viene neppure più percepita. Oggi è scontato che quando un'industria si mette alla ricerca di un programmatore questo deve prima di tutto essere un esperto in Object Oriented Programming (OOP). Esistono rari casi di ditte che ancora basano il loro funzionamento sulla geriatria della programmazione come COBOL o Fortran. Ma come ho detto sono casi piuttosto isolati. Quando tento di spiegare questo fenomeno, mi piace fare il seguente paragone.
Prendiamo un manuale, o un libro di testo di un qualsiasi linguaggio che supporti il paradigma di programmazione OO come ad esempio C++ o Java, o quello che volete voi. Sicuramente nelle prime 100 pagine di questi manuali o di questi testi troverete la fatidica frase “everithing is an object” (o “ogni cosa è un oggetto” se vi trovate a sfogliare un testo in italiano). Lo studente che si sta avvicinando al mondo della programmazione e che legge questa frase é come se si trovasse in una stanza buia e qualcuno infilandogli degli occhiali con lenti rosse gli dicesse: “ogni cosa è rossa” e poi accendesse la luce. Lo studente, esterrefatto converrebbe subito: “caspita, ha ragione, tutto è rosso”.
Prendiamo ora un secondo studente che si accinga a leggere invece un manuale od un libro di testo sulla programmazione generica. Nelle prime 100 pagine di un testo siffatto, troverà sicuramente l'affermazione: “everithing is an algorithm” (o “ogni cosa è un algoritmo” sempre se avete avuto la sfortuna di avere tra le mani un testo in italiano). Anche qui è come se questo studente si trovasse in una stanza buia e prima che la luce venga accesa qualcuno gli avesse infilato degli occhiali dalle lenti blu e gli avesse detto: “ogni cosa è blu”. Anche questo studente, guardando il mondo per la prima volta converrà sicuramente che: ”è vero, ogni cosa è blu”.
Pesiamo ora ad un terzo studente che si sta accingendo a leggere un manuale od un testo di programmazione funzionale. Nelle solite prime 100 pagine leggerà la solita attestazione di verità assoluta: “everithing is a function” (o “ogni cosa è una funzione” se si possiede un testo in idioma nostrano). Stesso procedimento degli occhiali, questi con lenti verdi e stessa constatazione da parte dello studente finalmente illuminato: “è vero, ogni cosa è verde”.
Immaginate cosa succederebbe se questi tre studenti si incontrassero ed iniziassero a parlare del mondo? Ognuno sosterrebbe di vedere lo stesso mondo in maniera diversa dall'altro. Non in maniera sbagliata, ma diversa. Il mondo è sempre quello, ma i filtri dei tre ragazzi sono diversi.
Pensiamo ad un quarto (è l'ultimo, prometto) studente che avendo sentito parlare gli altri tre voglia a sua volta provare a vedere il mondo, ma utilizzando tutti e tre gli occhiali dei ragazzi di prima contemporaneamente, anzi utilizzando tutti gli occhiali di tutti i colori possibili in un volta sola. Cosa vedrebbe una volta accesa la luce? I tutti i colori sommandosi sparirebbero formando un luminoso bianco. Questo ragazzo avrebbe la visione totale del mondo della programmazione ed avrebbe dalla sua parte l'intera torre di babele dei paradigmi per poter affrontare qualsiasi problema. Fine.

Pensate a questa storiella quando sentite qualcuno affermare che la programmazione moderna è solo OO.

Luca Ciciriello.