Code is communication - more for humans, less for computers

· 2m read

Code is not just to tell the computer what to do. It is also to tell the human what the computer is doing.

The computer doesn't care about quality of communication. The human does.

If you throw horrible code at the computer, the computer will execute the code. If you throw horrible code at the human, the human will execute you.

- Me

We have always been able to tell the computer what to do in assembly language itself. But we ended up inventing and using nice languages, with higher layers of abstraction, to make sure we humans can easily understand what the code is doing.

When we make new languages, we mostly tell ourselves - "we're making this new language so we can tell the computer to do things more easily/safely/performantly".

In reality, most of the time, we are actually building them so that "the human can more easily communicate to the computer to do things more easily/safely/performantly".

An easy example is - We can write memory safe code in C - it is hard, but it can be done. But, rust is better in this regard because it makes writing memory safe code easier for the human.

It is always for the human.

Look back at all the programming talks you've watched from this perspective. They rarely talk about how to communicate well to the computer. Most of the time, they talk about how to communicate well to the humans reading the code.

So, write code that communicates well. Do whatever it takes to make sure the human understands the code without headaches.

Optimize for communication.

When you come across a situation where you have to choose between readability vs performance, choose readability. If that code is extremely critical, and you must choose performance - put in comments to improve readability.

Good code communicates well. It tells you clearly what it is doing. It looks borderline stupid. It allows you to stay brainless.

Code is communication.

Colophon 438 words · ~2 pages · 2m read · #programming
First written 2026-08-07 as a markdown note in Obsidian. Built into this page by a Python script on 2026-10-16.

Blog

Articles

created category title length
api HTTP API design handbook
API design guidelines
#api #api-design
3 pages
4 mins
data engineering The Spark Field Manual
An engineer-focused field manual on Spark internals for new data engineers and seasoned experts who need a refresher.
#spark #bigdata
23 pages
37 mins
python Unicode string normalization schemes in Python
Universally applicable string comparison in python. For string comparisons, and for de-duplication in datasets.
#python
5 pages
7 mins
resources Bookmarks
A centralized collection of papers, talks, lectures around computer science, engineering, and the overall industry
#resources
5 pages
8 mins
resources PVLDB - links only
A convenient centralized list of all PVLDB papers till date
#resources #research
162 pages
4 hrs 25 mins
resources PVLDB - links with abstracts (large document)
A convenient centralized list of all PVLDB papers till date, and their abstract
#resources #research
3377 pages
92 hrs 14 mins
work Lecture - You and your research by Dr. Richard Hamming
The lecture by Richard Hamming
#advice
49 pages
1 hr 18 mins
7 rows · last processed on 2026-10-16