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.