A magazine about programmers, code, and society. Written by humans since 2018.

Issue 038: Design by Contract

Download PDF of this issue.

Issue 038: Design By Contract

Welcome to the thirty-eighth issue of De Programmatica Ipsum, dedicated to the subject of Design by Contract. In this edition, Adrian explains the origins of Design by Contract and its relation to assertions and exceptions; Graham discusses how to work with mutable state in your code through Design by Contract; and in the Library section, Adrian reviews "Facts and Fallacies of Software Engineering" by Robert L. Glass.


Colin Powell passed away during the preparation of this article. In one of the most memorable and abhorrent chapters of his career he gave a speech in the United Nations trying to justify the unjustifiable.

How To Reason About Mutable State

The idea, prevalent among those who would prefer you to use functional programming languages, that it is impossible to reason using non-functional programming languages due to the existence of mutable state, is newer than many of the reasoning mechanisms and tools that we use to understand programs that use mutable state.

Robert L. Glass

Robert L. Glass wrote a book in 1998 called "Software 2020", currently rated with only one star… by the author himself. In his review (written in 2017) he justifies this abysmal record because of a simple observation: none of the predictions in the book turned out to become a reality.

Back to top