martedì 29 gennaio 2013

Why We Should Build Software Like We Build Houses

Questo è il titolo di un bellissimo articolo su Wired scritto da Leslie Lamport, uno dei più grandi computer scientists viventi. Stranamente non ha ancora ricevuto il premio Turing, l'equivalente informatico del premio Nobel.
Chiunque abbia a che fare con il software dovrebbe leggerlo con calma. Ripensarci per qualche ora o qualche giorno. Poi rileggerlo con calma, ripensarci ancora e così via.
E' breve e scritto in modo molto semplice e chiaro.
Contiene alcune perle di saggezza che meritano l'inclusione nella mia raccolta di Words of Wisdom: frasi brevi con elevatissima concentrazione di "verità" (in questo blog ne ho messe solo due, dovrò decidermi a metterne anche altre).
Raramente un unico articolo o intervista ne contiene così tante.
Uno dei primi paragrafi ne contiene 4 di fila, caso per me unico:

Most programmers regard anything that doesn’t generate code to be a waste of time. Thinking doesn’t generate code, and writing code without thinking is a recipe for bad code. Before we start to write any piece of code, we should understand what that code is supposed to do. Understanding requires thinking, and thinking is hard.

Seguono poi altri gioielli, uno dei quali solo riportato da un'altra fonte:

Writing is nature’s way of letting you know how sloppy your thinking is.

Writing is hard, and learning to write takes practice. 

The key to understanding complexity is abstraction.

The best language for being simple and precise is math.

La conclusione è un capolavoro:

Thinking doesn’t guarantee that we won’t make mistakes. But not thinking guarantees that we will.
Posta un commento