# What is a simple system?

DevFeed: [What is a simple system?](<https://devfeed.tech/articles/what-is-a-simple-system-12519.md>)

Original publisher: [Read original article](<http://brooker.co.za/blog/2022/05/03/simplicity.html>)

Author: Marc Brooker

Published: 2022-05-03T00:00:00Z

Content type: article

Language: en

Sources: [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog.md>), [Marc Brooker's Blog](<https://devfeed.tech/sources/marc-brooker-s-blog-2.md>)

Topics: [Cryptography](<https://devfeed.tech/topics/cryptography.md>), [Database](<https://devfeed.tech/topics/database.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Persistence](<https://devfeed.tech/topics/persistence.md>), [C](<https://devfeed.tech/topics/c.md>), [Unix](<https://devfeed.tech/topics/unix.md>), [Windows](<https://devfeed.tech/topics/windows.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [cryptography](<https://devfeed.tech/tags/cryptography.md>), [database](<https://devfeed.tech/tags/database.md>), [persistence](<https://devfeed.tech/tags/persistence.md>), [windows](<https://devfeed.tech/tags/windows.md>)

## AI overview

The article examines what makes a system simple, arguing that simplicity is meaningful only in relation to the problems, environment, history, and constraints a system must address. Simple approaches such as ROT13, flat files, or a single server can be appropriate in limited contexts but become inadequate when security, persistence, concurrency, or hardware failure matter.

## Source excerpt

What is a simple system? Is this pretentious? Why do I need cryptography when I could simply hide the contents of my communications rotating every letter by 13? Why do I need a distributed storage system when I could simply store my files on this one server? Why do I need a database when I could simply use a flat file? Do any of those things, and feel joy in a job well done. A simple solution. Perhaps you're hiding your communications from a child, storing little data with low value, and avoiding concurrency. Simplicity in a goal achieved. But useless in the face of an adult adversary, or a desire for persistence beyond the fallibility of hardware, or even of two people trying to do a job at once. This presents us with something of a challenge: we know that simplicity is good, and excess simplicity is useless. Everything should be as simple as can be, Says Einstein, But not simpler.1 Indeed, but that doesn't get us much further in understanding how simple things can be. It is only possible to evaluate simplicity in context of the complete closure of the world. The problems a system solves, technical, organizational, educational, and historical. This presents a problem, due to the difficulties of encapsulating the world. When we try to pick out anything by itself, we find it hitched to everything else in the Universe.2 Brooks turned to Aristotle to attempt to answer this question, and found complexities accidental and essential. The accidental complexities are introduced by our human failings: ignorance, pride, and curiosity. The essential are produced by our environment, as separate from ourselves and our technology. A perfect jewel, dirtied only by our clumsy hands. We are encouraged to avoid excessive curiosity, as if learning may take us further from the light of perfect simplicity. Could a perfect craftsman with perfect tools produce a perfect product? Successive theories in any mature science will be such that they 'preserve' the theoretical relations and the a