A Plea for Lean Software by Niklaus Wirth (1995)

In 1889, Anton Chekhov writes to his brother Alexander: “My advice: in the play try to be original and as clever as possible, but do not be afraid to seem silly; we need free-thinking, but only the freethinker who is not afraid to write nonsense. Do not grind it, but be clumsy and impudent. Brevity is the soul of wit.” I think we can apply the same principles to academic papers as well. »

4 quotes from The Emperor’s Old Clothes by C.A.R. Hoare (1981)

This article was originally published on Medium. About ALGOL 60 which introduced recursion and enabled him to express his quick sort algorithm: “The highest goal of programming language design to enable good ideas to be elegantly expressed.” On shortening programs (meaningful name -> a1): “The way to shorten programs is to use procedures, not to omit vital declarative information.” On complexity and the role of a programming language: »

Where should I declare my constant?

This article was originally published on Medium. Quick question: where should I declare my constant? Most developers would say: “top of the file”. And that would be the wrong answer. As for the majority of the questions in software engineering, the right answer is “it depends”. I would try to prove to you, in this post, that, if the constant is private and is used only in one place, it’s far better to declare it right above the line, where it’s used. »

Choosing a type for blockchain height (beware of unsigned integers)

This article was originally published on Medium.

Before this pull request, it was a mess. ABCI was using a uint64 height on EndBlock. Tendermint Core was using the same type for TxResult. Block and BlockStore, however, were using int heights (remember that int is different depending on the processor architecture: int32 for x86, int64 for amd64). There was no single standard across our repositories as for what type to use for blockchain height.