We make decisions to take actions. Therefore:

  • Decisions are descriptions of what actions to take.
  • Decisions are lists of instructions.
  • Decisions are programs.

This realization has profound implications for programmers:

  1. We can make decisions by writing programs. We just need to learn how to write decision-specific programs in our favorite programming language.
  2. We can use any Turing-complete programming language. We just need to choose a language which simplifies making decisions (more on that later).
  3. We can mix human instructions with computer instructions. We just need to use a special interpreter to run programs with a mixed instruction set.

The ability to write mixed programs for humans/computers is very powerful:

  1. We can build companies by writing code. We can automate setting tasks for employees, validating their work results, collecting money from customers & distributing money to employees. This is possible today - there are APIs for setting tasks & sending money. We just need to make decisions about the parameters of the API requests.
  2. We can build governments by writing code. We can automate setting tasks for government officials, verifying their work results, collecting taxes from some citizens & distributing taxes to some other citizens. We can also require the laws to be expressed as theorems, which must be proven by axioms (the Constitution).

Excited? So am I. Join our group to ask questions & learn to use this power of making decisions by writing programs.