SocraticDev logo

You cannot bullshit a computer

Sunday April 19th 2020 by SocraticDev

Donald Knuth is an American computer scientist, mathematician, and professor emeritus at Stanford University. He is the 1974 recipient of the ACM Turing Award, informally considered the Nobel Prize of computer science.

-- Wikipedia.org

I believe there is a chasm between programmers and 'regular people'. Genuine programmers have a continuous dialogue with computers. A real dialogue in a sense that both human and machine are of good faith and interacts following well-defined rules in order to make a program become a product. Whenever the programmer runs astray from the rules, the program won't build or it will crash or it will behave weirdly. The real challenge of a programmer is to understand thorougly what he needs to get done in order to instruct the machine what to do.

Human communication tolerates sloppiness and vagueness. When talking to someone, you can see him nodding and reacting as if he understands and agrees with you. But how can you be sure another person understands your message the way you meant it ? Maybe he's bluffing or ... just a little too socially well adjusted ! On the other hand, you cannot bullshit a computer. It will follow your instructions.

The best way to communicate from one human being to another is through stories.

-- Donald Knuth

Knuth is perhaps an ancestor to the Clean Code philosophy. However, the idea of writing code that is both efficient and easy to maintain is a constant in the craft. The concept of "literate programming" refers to a practice that considers code as a programming language as well as a documentation language.

Code should tell a story to the human reader.

Professional programmers let code speaks for itself. They come in and write robust and easy to maintain programs. External documentation is at a minimum and code can live on its own. On the other hand, amateur programmers think of the here and now : writing quick and dirty code without thinking twice of tomorrow. Some even think that if they produce convoluted code, they insure job security for themselves ...

Bonus

A person’s success in life is determined by having a high minimum, not a high maximum. If you can do something really well but there are other things at which you’re failing, the latter will hold you back. But if almost everything you do is up there, then you’ve got a good life.

-- Donald Knuth

Sources

"Donald Knuth", Wikipedia.org

The Computer Scientist Who Can’t Stop Telling Stories (2020)