Com\’è dura la professione!

7 giugno 2009

Il pittore ed il professore

Filed under: letture — lbell @ 19:53

Le Scienze sta pubblicando una interessante collana di DVD aventi come tema gli incontri avvenuti al festival della matematica di Roma dello scorso anno. In quello di questo mese vi si trova l‘intervento di Thomas Banchoff focalizzato su Salvator Dalí. Il relatore parla avendo alle spalle uno schermo gigantesco su cui sono mostrate le opere del pittore catalano mentre sono citate. La cosa strana è che, tanto più si parla di un’opera, tanto più il regista zooma sul relatore, stringendo l’inquadratura e non mostrando mai l’argomento del discorso.

Nel numero de ‘Le Scienze’ di questo mese viene svelato il mistero: ci sono problemi di licenza sul materiale video riguardante le opere.

Al di la dell’irritazione per l’assenza dei contenuti video principali in un DVD in vendita, è un po’ surreale che si parli per un’ora di qualcosa che non si può vedere, pure se si sa che esiste.

Una situazione perfettamente in tema con il surrealismo delle opere di Salvator Dalí.

4 giugno 2008

‘Essere’ uguale a…

Filed under: letture,Programmazione — lbell @ 19:42

Nel suo ultimo libro, una raccolta di spunti e pensieri, quasi un blog, Odifreddi lascia una nota sulla teoria secondo cui la struttura di un linguaggio condiziona la struttura del pensiero che in tale linguaggio viene espresso. A causa di ciò nel mondo anglosassone si è più portati a pensare in termini di sostantivi ed oggetti, che in termini di azioni e verbi. Nel campo della filosofia, questo motivo sarebbe uno delle cause delle differenze di pensiero tra la scuola continentale e quella analitica di derivazione anglosassone. Questo contrasto è esemplificato dal concetto di ‘essere’; nella filosofia continentale il verbo essere può essere impiegato con ambiguità tanto nel senso di esistere, quanto manifestare appartenenza (identità), o esprimere una proprietà.

Nei linguaggi di programmazione possiamo ritrovare le stesse differenza di impostazioni, abbastanza ironicamente visto che i linguaggi di programmazione sono quasi tutti di derivazione anglosassone.

Dal Basic, linguaggio in cui l’operatore ‘=’ viene utilizzato con le stesse ambiguità del termine ‘essere’ si passa al Pascal ed al linguaggio C ed ai suoi derivati , in cui ci si preoccupa di distinguere l’assegnamento, cioè il divenire, dal confronto, usando due operatori diversi, = e == (doppio uguale). Resta comunque possibile anche in questi due linguaggi scrivere espressioni in cui si assegna un valore ad una variabile in modo ricorsivo, facendo riferimento ad un suo valore precedente.

A=A+B

Ovviamente questa espressione non va intesa come un’equazione, ma a quest’ultima ambiguità pongono rimedio i linguaggi funzionali come Erlang, che non permettono l’assegnamento di un valore ad una variabile più di una volta, rendendo di fatto impossibile concepire simili storture sintattiche. Anche il C, con l’introduzione di appositi operatori di modifica ed assegnamento ci dà la possibilità di proseguire su questa strada, utilizzando espressioni come la seguente

A+= B

dove l’operatore += è inteso semplicemente come incremento, ma basta complicare un attimo l’espressione per ricadere nel caso precedente, dopotutto il C non ha mai deluso nessuno in quanto a flessibilità.

A+= 2/(A+1);

I concetti di sostantivo, aggettivo ed azione presenti nel linguaggio umano si ritrovano comunque nei vari paradigmi della programmazione, orientata agli oggetti, funzionale o imperativa . Nessuno di questi paradigmi è tuttavia in grado di coprire completamente le necessità della programmazione ed è per questo che nei linguaggi di programmazione orientati agli oggetti si è costretti a ricorrere all’uso dei generics, o dell’Aspect Oriented Programming.

http://it.wikipedia.org/wiki/Essere

http://it.wikipedia.org/wiki/Filosofia_analitica

http://it.wikipedia.org/wiki/Erlang_(linguaggio)

http://www.erlang.org/

http://www.vialattea.net/odifreddi/impenitente.php

http://www2.polito.it/didattica/polymath/htmlS/info/BIBLIOID/Borzacchini%20Odifreddi.htm

http://it.wikipedia.org/wiki/Chiusura_%28informatica%29

http://en.wikipedia.org/wiki/Aspect-oriented_programming

1 novembre 2007

Fabbriche di codice

Filed under: letture,Programmazione — lbell @ 21:08
Tags: , , ,

Ho iniziato a sfogliare le prime pagine di “Beautiful Code”, un libro formato da un collezione di riflessioni di programmatori di prima classe su vari problemi di software design (a proposito, perché tra gli autori non ci sono anch’io?).
La prima riflessione è su di un motore di matching di espressioni regolari ed è firmata da sua Maestà Brian Kernighan a proposito di un pezzo di codice scritto da Rob Pike nel linguaggio degli Dei, in C. Dieci pagine per parlare di un programma di trenta righe non stupiscono, ogni riga di codice corrisponde ad una decisione di cui si deve rendere conto.
Scorrendo il codice incluso, spicca questa riga:

} while(*text != '' && (*text++ == c || c == '.' ));

in cui ritrovo tutta l’espressività del C e praticamente tutto quello che viene sconsigliato di mettere in pratica nei libri degli esperti di programmazione.
É strano notare che quello che viene considerato un capolavoro di sintesi ed espressività sia considerato dannoso nella pratica dell’industria, ed una delle ragioni dell’abbandono di un linguaggio tanto potente verso i più controllabili Java e C#.
Cosa c’è di tanto sbagliato? Un postincremento in una espressione di confronto e una dipendenza del risultato finale dall’ordine dei test, il che non è affatto chiaro a chi deve leggere il codice per la prima volta, se non ha molta esperienza.
Un modo migliore di svolgere lo stesso compito sarebbe di creare una variabile booleana prima del while, e spezzare il test su più righe esplicitando test ed operazioni.
La professione del programmatore è uscita da tempo dall’artigianato per entrare nell’era della produzione industriale in cui le differenze di stile e le soluzioni ‘brillanti’ di questo tipo, che escono dai canoni delle convenzioni sono viste con sospetto.

22 gennaio 2007

Libri, libri, libri (per lavoro)

Filed under: cosi' va il mondo,letture,Programmazione — lbell @ 22:55

Del perché sia necessario leggere i libri di programmazione in anticipo sui tempi non parlerò, anche perché Igor Damiani lo spiega molto chiaramente in questo suo post, parlerò invece del perché non è facile farlo. Anche nell’epoca dei documenti elettronici, almeno per me, i libri restano necessari, perché leggere la documentazione a video è scomodo; per leggere i libri si può agevolmente sfruttare il tempo impiegato nel tragitto casa lavoro, se si utilizza il trasporto pubblico. Molte aziende sono disponibili ad ‘investire’ in libri da dare in pasto ai dipendenti, tuttavia per essere veramente recepiti i libri devono essere personali. Vanno iniziati, lasciati sul comodino, ripresi, accantonati perché ci si deve dedicare ad una urgenza. I libri aziendali non ci sono mai quando li si desidera leggere, seguono un percorso tutto loro, vengono accatastati inutilmente nei posti più inattesi come trofei di guerra, sono dimenticati a casa della persona a cui non servono ma che li aveva presi per curiosità. Se non li si può ricevere in prestito perenne dalla ditta, li si deve quindi comprare di tasca propria. E qui ahimè veniamo ai problemi (di costi). Diciamo che per restare al passo con i tempi è necessario acquistare almeno un paio di libri al mese (per non dire uno alla settimana), ma chi con uno stipendio da impiegato se lo può permettere? Oggi è normale arrivare ad 80, 100, anche 130 euro per alcune tipologie di libri di programmazione, il che fa 200 euro al mese, 2000 all’anno per fare un conto pari stando anche prudenti. Se controlliamo inoltre quanto costano all’estero gli stessi libri, visto che quelli che troviamo sugli scaffali nostrani sono spesso traduzioni degli originali d’oltreoceano, vediamo che alle volte arrivano perfino alla metà, con nostra somma gioia. Come può un impiegato o un lavoratore con contratto a termine permettersi di spendere una tale cifra, che per una ditta invece è assolutamente ragionevole? Sembra che il libro, l’oggetto che incarna la cultura per antonomasia, stia ridiventando disponibile a pochi, praticamente patrimonio delle ditte.

2 gennaio 2007

Il signor Monti e la Wikipedia.

Filed under: letture,Open Source — lbell @ 21:04

In prima pagina nell’edizione odierna del serissimo , almeno per me, parere personale, “Corriere della Sera” si trova un articolo del serissimo signor Mario Monti. Non parlerò dei contenuti dell’articolo, ma del fatto che per definire un termine si cita Wikipedia. Sembra che il virus degli strumenti costruiti dalla comunità sia arrivato parecchio in alto, tra le persone serie.

20 dicembre 2006

Recensione di “Che cos’è la logica” di P. Odifreddi

Filed under: letture,Programmazione — lbell @ 23:26

Si tratta di un audiolibro fresco di incisione che, come dice il titolo, tratta della logica, una disciplina che dovrebbe essere la base su cui sono fondate le scienze, ma non solo le scienze, a metà tra la matematica astratta ed uno strumento impiegato quotidianamente nel mondo concreto.

A dire il vero si tratta solo di un’introduzione alla logica, e proprio l’introduzione alla conferenza vera e propria occupa praticamente tutto lo spazio (ma non si dovrebbe parlare di tempo?) del CD . Ma in fondo la magia della divulgazione di un argomento tanto sottile sta proprio qui. Viene citato qualche logico e filosofo qua e la, tanto per mettere qualche punto fermo, ma nulla di più e nessun teorema; si tratta in fondo di una presentazione di un’oretta da ascoltare tutta d’un fiato come un racconto. Odifreddi, che ha curato per l’università a distanza Nettuno lezioni introduttive alla logica matematica, che ogni tanto vengono riproposte sull’omonimo canale satellitare, è un divulgatore che non si fa fatica ad ascoltare.

C’è tuttavia qualcosa di particolare nel tema trattato, ed è lo spiegare come la logica sia alle basi della struttura del linguaggio di uso quotidiano. In quest’ultimo troviamo la distinzione tra sostantivi, aggettivi e verbi, che rappresentano oggetti, proprietà ed azioni. i generi letterari che ci sono più noti, epica, lirica, dramma, sono caratterizzati da quello di questi soggetti che assume rilevanza preponderante. Ma… dove ho già sentito queste parole, metodi, proprietà, oggetti? A questo punto mi aspettavo di sentire parlare di programmazione procedurale, di OOP e OOA e di Turing. In effetti Turing è considerato anche un logico, e non è un mistero che la logica matematica sia alla base dei linguaggi di programmazione dato che la programmazione stessa non è altro che manipolazione dell’informazione. Che agli studenti di ingegneria sia consigliabile anche qualche bel corso di filosofia?

Una pecca? Il prezzo, non proprio economico e, ma questo è un requisito, il tempo e l’attenzione necessari per poter apprezzare appieno l’audiolibro.

5 settembre 2006

Vecchi libri ritrovati

Filed under: letture,Mac — lbell @ 20:34

Certe idee non svaniscono, semplicemente cambiano nome.

NeXT e Mac

15 maggio 2006

L’anno degli anniversari ovvero Fede e Ragione

Filed under: letture — lbell @ 19:39

Su Le Scienze di questo mese c’e’ un articolo che parla dei limiti della matematica e prende spunto dal fatto che quest’anno cade il 50o anniversario della scoperta del teorema di Goedel sulla presenza di verita’ indimostrabili nella matematica, da parte dell’autore dell’articolo stesso. In realtà si tratta più di logica, ovvero quella scienza che regolamenta l’uso e la coerenza interna della matematica ed il succo del discorso e’ che vi sono limiti nella matematica, dimostrati dalla matematica stessa. Tali limiti sono rilevanti anche per tutte le scienze che si poggiano su di essa anche se non sembra abbiano frenato più di tanto gli ingegneri che tutti i giorni applicano la matematica alle loro creazioni. In effetti quello che si sostiene e’ che una teoria o e’ completa o e’ consistente, non entrambe le cose. Dato che vi sono verita’ indimostrabili, se un sistema e’ completo, e dimostra solo verita’, non potrebbe dimostrare l’indimostrabile e quindi non sarebbe consistente.
E purtroppo la regola vale all’infinito, ovvero la ragione non sara’ mai in grado di realizzare un sistema completo e consistente. Come conseguenza la matematica non sara’ mai in grado di validare se stessa. E’ un problema di metodo, non di quanto grande possa essere la capacita’ di comprensione dell’umano o del divino.
E’ abbastanza strano ed affascinante che i limiti siano rilevati e confermati proprio dalla stessa matematica. Purtoppo ignoro per mie lacune se una logica non basata sul terzo escluso possa superare tali limiti; spesso infatti i muri che ci costruiamo attorno alle nostre teoria sono scavalcabili cambiando la prospettiva da cui li si guarda; questo punto potrebbe fare il paio con quello che ci viene insegnato fin da piccoli sulle rette parallele che si incontrano all’infinito, una successione infinita di sistemi sarebbe completa e consistente?
Ricordiamoci della fine che ha fatto il paradosso di Zenone che richiama questo tema e delle serie convergenti.
Quello che mi chiedevo è se la guida della ragione, utilizzata per gettare le basi delle teoria ed esplorarne le conseguenze sotto forma di teoremi, non inizi a vacillare. Dobbiamo quindi riaffidarci alla fede o più modestamente all’ispirazione per parlare di matematica? Gli assiomi che siamo costretti ad inserire ogni tanto per far stare in piedi il castello della teoria, da dove vengono?
L’altro argomento affascinante che accompagna l’ articolo citato e’ la differenza tra matematica e fisica. Molti metodi matematici sono stati creati per meglio descrivere il mondo, ma da dove si parte? E’ il mondo concreto che inventa la matematica o e’ la matematica gia’ presente sotto forma di idee nelle nostre teste?

Se siete curiosi di sapere quali altri anniversari cadono quest’anno:

  • 50o anniversario dell’intelligenza artificiale
  • 40o anniversario di laboratori HP
  • 30o anniversario di DrDobbs
  • 20o anniversario del primo virus per computer
  • 10o anniversario di Java (JDK1.0)

Classifica tratta da Dr Dobbs.

Blog su WordPress.com.