Recentemente ho ascoltato un episodio di Software Engineering Radio in cui è stato intervistato Leslie Lamport . Una cosa che ha discusso è stata la sua lingua delle specifiche, TLA + .
Essenzialmente, sembrava sostenere che, per i programmi in cui la correttezza è molto importante, dobbiamo riflettere attentamente e specificare attentamente prima di scrivere il codice, e TLA + è pensato per essere uno strumento per farlo. Ha detto che un team di Amazon ha recentemente avuto successo nell'utilizzarlo.
Personalmente, scrivo test eseguibili per il mio codice. Vedo i test come una specifica, che ha l'enorme vantaggio di dimostrare se il codice è conforme ad esso.
Suppongo che Mr. Laport, essendo un brillante e compiuto informatico, lo conosca da molto tempo e veda ancora il bisogno del suo linguaggio. Ma perché?
I linguaggi delle specifiche formali e i test automatizzati sono approcci complementari o in disaccordo? Si prestano a diversi tipi di codice?