Pythonicità e/o cleverosità

In programming, clever != smart.
Nella programmazione, ingegnoso != intelligente.


Una delle caratteristiche fondamentali di Python è la chiarezza della sua sintassi. L’uso dell’indentazione per la delimitazione dei blocchi ne è l’esempio più eclatante.

Io che sono vecchio mi ricordo, attorno al 1980 in cui si resero disponibili i compilatori Fortran 77, quando i vecchi capi dubitavano del codice scritto “come se fosse una poesia dal lato sbagliato“. E qualcuno continuava a allineare tutto in colonna 7 e dovevi stampare il listato e segnare con gli evidenziatori (comparsi allora-allora) l’estensione degli if multilinea (nuovi) e dei do (for). OK, fine del blocco nostalgico.

In effetti la via che si è imposta è quella del C. Sarebbe potuto andare peggio, se avesse vinto il Perl.
Un linguaggio unico nel suo genere è Lingo, lo scripting language di Director. Nel suo ambiente lo script si autoindenta automaticamente: impossibile confondersi (io e qualcuno di mia conoscenza ce la facevamo comunque). Ma è un caso limitato e (credo) ormai tramontato.


Un’altra caratteristica che rende il codice leggibile è la sua suddivisione in piccole entità –procedure e funzioni per usare la terminologia del Pascal– del programma. Non è sempre stato così: i Basic della rivoluzione dei microcomputer (se ben ricordo questo era il loro nome allora) era un’unico main, con gosub che erano nient’altro che goto (quasi, lo so: return without gosub era sempre in agguato).

A proposito del Basic (delle origini, quello vero, ruspante): le variabili :-(
Intanto i loro nomi non potevano essere troppo lunghi, massimo due caratteri, solo maiuscolo. Ma il peggio è che erano tutte globali.

L’abitudine di scrivere tanti sottoprogrammi ognuno dei quali faceva solo una cosa si è fatta strada pian piano a scuola (Turbo Pascal) e nel mondo del lavoro con il C e Unix. La shell programmabile e la dovizia di tools come sed, awk, bc, ______ ha cambiato il modo intendere la programmazione, molto prima degli oggetti.

Escludendo Perl (Perl: The only language that looks the same before and after RSA encryption. – Keith Bostic) basta impaginare male il codice e capire cosa fa –o dovrebbe fare– diventa difficile. Capita spesso con JavaScript, dove è normale riciclare cose copiate dal Web. E uno dei linguaggi, il più fantabuloso di tutti (imho), per questo è speciale: vi ritrovate con funzioni che ritornano a funzioni in cascata, spesso ricorsivamente e con una serie di parentesi chiuse lunga così. Ma scritto bene è quello che preferisco.

On teh toobz si trova parecchia roba sull’argomento, non è solo una mia fisima, ecco per esempio: Why “clever” code is often really quite stupid. Guido van Rossum racconta queste cose molto meglio di me, ça va sans dire 8)

Poi c’è chi fa post clever sulla cleverness in cui trovate quote clever, come questa:

The difference between theory and practice is that in theory, there is no difference between theory and practice. – Richard Moore

Ma a volte bisogna essere clever. Avendo smaltito la stizza che mi ha indotto a scrivere questa nota (è passata più di una settimana, ormai) voglio raccomandarvi una serie di post überclever scritti da un blogger davvero smart:
I logaritmi come li fanno i computer — parte 8
.

Ovviemente, come i più smagati avranno già scoperto , fa parte di una serie. Cominciate dall’inizio. E nei commenti ci sono cose che voi umani… 8)

Me Brixie su G+

About these ads
Post a comment or leave a trackback: Trackback URL.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

Iscriviti

Ricevi al tuo indirizzo email tutti i nuovi post del sito.

Unisciti agli altri 77 follower

%d blogger cliccano Mi Piace per questo: