The Ascetic Programmer


By Antonio Piccolboni

cover image of The Ascetic Programmer

Sign up to save your library

With an OverDrive account, you can save your favorite libraries for at-a-glance information about availability. Find out more about OverDrive accounts.

   Not today

Find this title in Libby, the library reading app by OverDrive.

app-store-button-en.svg play-store-badge-en.svg

Search for a digital library with this title

Title found at these libraries:


"You don't need to be stuck on a bus between Oslo and Göteborg to enjoy reading this book [...]

Much interesting stuff to think about for the thinking and practicing programmer.

... and I'm not just saying that because he quotes me :-)"

–Poul-Henning Kamp, Author of Varnish-Cache and many contributions to FreeBSD Unix

Ascetic programming is the writing of computer programs using fewer lines of code or forgoing certain programming language features. Imposing restrictions on programming other than those on resources goes at least as far back as Edsger W. Dijkstra's condemnation of the goto statement. However, among possible restrictions, the one on program length is the most interesting. It has positive associations to computing, from correctness to maintainability.

Asceticism originated as a spiritual practice targeting worldly pleasures and promising salvation or enlightenment. This book will focus mainly on code length restrictions and, more generally, description length restrictions, and our rewards will be plenty and varied, but less spiritual.

Asceticism in programming comes in two flavors: conciseness and frugality. The former aims at delivering the same functionality with fewer lines of code; the latter's goal is identifying essential features and discarding the rest. They both apply to programming at all scales, from snippets to systems.

Beyond programming, unexpected examples of asceticism can be found in statistics, philosophy, the visual arts, music, literature, and more. Outside science and engineering, both the function and the complexity of an artifact are less clear or undefined, so this foray will be, by necessity, more speculative at times.

This book doesn't present a grand theory or a practical method, but rather anecdotes and expert opinions, together with the occasional theorem and research paper, some from giants in their respective fields and some from regular professionals. Let the case for asceticism build from the totality of the book rather than a single, decisive argument.

Hopefully, you will be convinced that asceticism benefits engineering, science, and the arts and inspired to adopt unnecessary restrictions in your endeavors.

The Ascetic Programmer