Code is a Block of Marble

Whenever a programmer approaches a new project they are presented with only one thing. That thing lacks any substance, and can perform no action. Yet from nothing a programmer can create pretty much anything they can imagine.

Whenever a programmer starts a new project they open their IDE and are presented with the same thing. Whether C++ or Java, whether iPhone app or video game, there is one constant that every developer starts with: nothing.

It is empty of any process, any features. It is empty of any influence from the programmer. It has no memory, no mutations, no conditions. It is the lack of everything that it could possibly be, yet therein lies everything that it could be.

It is the uncarved block, 朴 (Pu). As a programmer writes code, creates conditions, and applies logic, parts of this block chip away. Eventually, after many hours of refining, refactoring, and bug fixing, the programmer will have found what he sought within Pu. They will have their program ready to release to the world.

A new, uncarved, project.

Then the programmer will move on to the next project. They will create a new repository, open up their IDE, then they will start chipping away at the uncarved block once again.

This is the 道 (Dao) of programming: that you will always start from the same formless, unacting nothing. The beginning is always present, waiting for the programmer. It never changes, and yet, it hides change within it. Changes only found by the carving.

Michelangelo once said, “The sculpture is already complete within the marble block, before I start my work. It is already there, I just have to chisel away the superfluous material.” The same can be said of any creative work. The painting is already on the canvas, the book is already in the Library of Babel, the program is already hidden within the uncarved block.

All creatives start with nothing. Then they carve and dig until they find what they were looking for. Their effort, their journey, deep into the block is what makes art beautiful.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.