The Tao is empty,
called and used but never exhausted
and filled with infinite possibilities.
It softens their resolve,
It unties their confusion,
It diminishes their importance.
It bears their dust.
The Tao is clear but transparent
Penetrates and endures
It created creation.
The intent here is to re-enforce the way; show that the inescapable unnamable way is pervasive. Lao Tzu intentionally abstracts this so that this passage can be used in many metaphors, therefore communicating that the unnamable simply is.
The Software metaphor
I’m only going to provide one example metaphor for this passage. I challenge you to identify other examples as you tackle your projects. Here we go:
The Tao is empty
The Tao is the empty string, or better yet, the completely undefined variable. When you’re building software, you’re using the undefined variable all the time, as the starting point for all of your constructs. Yet, unlike all other resources, your well of undefined variables never dries up.*
What you create from the undefined variable can become anything, showing that even when we start with nothing — or, more correctly, because we start with nothing — the possibilities are infinite.
*You may very well run out of namespace or memory to give that new variable after it’s been defined — but that’s not due to the well of undefined variables running dry — that’s due to you not having enough buckets to put them in.
Over time, the undefined variable also reclaims that which has been created. Constructs run their course, and one way or another they are returned to the nothing from which they came. Lao Tzu expressly tells us what the undefined (the tao) does as the reclamation happens –
It softens their resolve
Have you ever run into a Null Pointer Exception? As the undefined variable begins to reclaim the constructs that sprung from it, those constructs begin to fail. They don’t work as well as they used to, or they don’t work at all. As we learned in Chapter 3, resolve is the ability of a function (or actor) to perform correctly. Nulls break that.
It unties their confusion
As the constructs are reclaimed, they become simpler. The unknowns and misunderstandings begin to disappear. Thanks to return to simplicity, behavior becomes easier to predict — even if that expected behavior is now perpetual failure, that’s far more predictable than the complexity of the construct before the undefined began the reclamation.
It diminishes their importance
This is actually due to two actions the undefined is performing, reclaiming these constructs, and always creating new ones. The reclamation of these constructs is reducing their reliability and utility, while the creation of new constructs are replacing them.
It bears their dust
The constructs are reclaimed, and the undefined Tao continues as the only remaining carrier of what they once were.
The Tao is clear but transparent
I absolutely love this line.
It is 100% clear that the Tao, the undefined variable in our software metaphor, exists. It is the source of all things, and the reclaimer of all things. But it is also transparent. You can’t point at it. You can’t specify it’s address, you can’t say where it comes from or even when it came from. It created creation, and it will endure long after creation ends.
Where else do these words — this flow of creation and reclamation — apply to your projects?
This is part of the Tao Te Dev series, read about it (and find more entries) here.