Skip to main content
Notes by Austin Pocus

The Tao and the Ten Thousand Things

It seems almost sacrelige, to compare something as sacred as the Tao to something as ultimately meaningless as computers or software. Yet there is a comparison to be made, because the computers and the software are born of the Tao -- they are of the "ten thousand things", the myriad objects, concepts, and ideas created by the Tao itself.

They say the more you speak of the Tao, the less you know. Well I'm a rank amateur -- I've barely read the Tao half a dozen times, only a couple of translations, only a few verses I know "well enough". I'm new. But I think I have something to say on the subject, especially as a newcomer, since the Tao seems to favor one who doesn't claim to know all the things. How many people have known all the things?!

First, let me say, I don't call software or computers "ultimately meaningless" lightly, at all, especially because they are my existence in a large way. But I recognize that ultimately, my existence on this earth is likely to be a small piece of the puzzle and I'm ok with that. That includes any software I'm likely to write -- what, am I going to create the next Windows, or Linux? I hope not. Things like that have too much impact. I want to help a person who isn't much of anyone create a little thing that makes them happy. That would be a nice thing, to me.

Now, is where I get into the navel-gazing, the head-assery of philosophy. Feel free to tune out from here (but scroll to the bottom for tags and related posts!).

Some ideas are closer to the ideal of the Tao than others. Most apples don't fall far from the tree, but some do, too.

So which apples fell far from the tree of the Tao, when it comes to computing? And which are closer?

Immediately I want to say that the Lisp family of languages (of which Racket is probably my favorite) has to be the closest. That, or several generations of programmers have deluded themselves, although I like to think that the power makes up for the parentheses. That, and it's dead-simple to write a Lisp interpreter. Hell, I've done it -- how hard can it be, people?

As far as the idea furthest from the ideal of the Tao (if we can even call it an "ideal"), I'd say Java is up there. Java is probably the most stilted, fucked up language I've ever worked with. Every improvement since Java 7 has been trying to make up for the fact that Java was designed as a bureaucratic, boilerplate-friendly language with no functional components whatsoever (in a few senses).

What makes an idea close or far from the Tao? (Do I know? Hint: I don't.)

In my extremely limited capacity, I can say that simplicity is in accordance with the Tao, as is intuitiveness. The more simple and intuitive and easy to use something is, the more in accordance with the Tao that thing can be said to be, in general (IANAG -- I am not a guru).

In that case, Ruby is the best language. Or, a Lisp-based domain-specific language that's tailor-made for your problem.

I think that's about all the head-assery I've got for now. 'Til next time, folks.