1. sudo. (verb). to become or act as root, in unix terms.
2. code. (noun). a formalized body of principles or laws.
What is a developer?
What is a "real developer"?
Are there any universal laws in our field, and if so,
where can we look if we want to find them?
Those of us who belong to the field of "computing" in the
broad sense often end up at jobs that somehow involve code.
At those jobs, one hears all sorts of things about what
constitute "best practices."
These "best practices" are a sort of unwritten moral code.
Like all moral systems, the "best practices" consist of both:
1. timeless truths about the nature of our field, and
2. current fashions, trends, virtue signalling, and personal
whims, claimed by various individuals to be part of the
canon of "best practices" in order to give the speaker an
appearance of authority to change the behavior of others
and enforce their adherence to the practices in question.
In other words, like all morality, there's some real wisdom
and some real bullshit in there.
The question to which this book is dedicated is "can we do
better?" Is there somewhere else we can look for timeless
wisdom about our field?
When someone claims that a thing they personally prefer is
a so-called "best practice" or "the right way" or when they
claim that you're "not a real developer" if you (say):
- push to the master branch of a shared project without PRs,
- don't believe that every part of a codebase needs tests,
- are generally skeptical of documentation in most contexts,
- consciously write code that's not maximally secure,
- often share certain passwords or private keys with others,
- sometimes don't document every function in a codebase,
- prefer local development over cloud-based serverless etc,
- sometimes even use the password "password" in real life,
If someone claims that "best practices" involve never doing
these things, or even better, if they claim that you are
"not a real developer" for doing any of the above, question:
_How can we tell if they're right?_
What's the "root of trust" in our field w.r.t. wisdom?
Are there any universal (or approximately so) standards
of "good taste" when it comes to building small projects
for a small team, or large systems that scale?
This book is about getting to the bottom of those questions,
by returning to our roots.
That is, their roots.
The root commits and early history of the code that
eventually went on to run the world.
By studying those early documents and ancient texts, will
we be able to distill any general principles or behaviors
or tastes or beliefs that the top masters of our art all
seem to share?
We don't know.
We haven't written the book yet, and in fact we're on the
same line of it that you are now.
But that's the question, and this book is devoted to
answering it.
Let's begin.