Com\’è dura la professione!

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.

5 commenti »

  1. Hai proprio ragione. Tu vuoi condensare tutta la tua anima in poche righe di c (per rimediare a quell’obbrobrio che hanno fatto i tuoi colleghi) ma ti vengono i rimorsi nel caso in futuro qualcuno non capendolo incasini il programma…

    C’e’ da dire che almeno con i programmi Object Oriented (piu’ che java queste cose ti riescono col c++) puoi schiaffare tutto il tuo “complicatissimo” codice dentro una classe in modo che nessuno lo tocchi…😉

    Commento di crossbower — 4 novembre 2007 @ 17:32 | Rispondi

  2. @”… con i programmi Object Oriented …”
    volevo dire con i linguaggi :p

    Commento di crossbower — 4 novembre 2007 @ 17:33 | Rispondi

  3. Se si parla di filosofia ok, ma volete mettere quanto è più leggibile uno stile Pascal-like rispetto ad uno stile da purista C ? :-))

    Commento di Claudio — 15 novembre 2007 @ 11:34 | Rispondi

  4. @Claudio
    Non sono del tutto d’accordo. Se conosci bene il C, riesci a scrivere molte informazioni in poco spazio con tutti i vantaggi di comprensione e controllo del codice che ne conseguono. Lo svantaggio è che ti è richiesta più attenzione, e questo in un ambiente ‘industriale’ dove hai molti programmatori dalla diversa esperienza ed abilità, si paga.

    Commento di lbell — 15 novembre 2007 @ 16:41 | Rispondi

  5. “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.”
    verissimo! se dovessi mettere mano a una cosa del genere magari fatta da un mio collega per una modifica al volo con il cliente che aspetta di là, lo maledirei non poco…

    Commento di motumboe — 5 dicembre 2007 @ 7:26 | Rispondi


RSS feed for comments on this post. TrackBack URI

Lascia un commento

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...

Blog su WordPress.com.

%d blogger cliccano Mi Piace per questo: