The Tao Of Programming
canonical.org
The Tao Of Programming
1–10 of 12 posts
Re: The Tao Of Programming
#2But reading this now, I realize this is more like a set of Zen koans than like Tao Te Ching itself. A little 'poetry' here and there like Tao Te Ching, but most parts are obviously inspired from koans.
Re: The Tao Of Programming
#3Re: The Tao Of Programming
#4Re: The Tao Of Programming
#5So many pieces of truth in here. Most of them I internalized long ago, but still there is the odd one which I encountered recently. This time it's "Software rots if not used". It is indeed a mystery, but oh so true.
Re: The Tao Of Programming
#6A novice asked the Master: ``Here is a programmer that never designs, documents or tests his programs. Yet all who know him consider him one of the best programmers in the world. Why is this?''
The Master replies: ``That programmer has mastered the Tao. He has gone beyond the need for design; he does not become angry when the system crashes, but accepts the universe without concern. He has gone beyond the need for documentation; he no longer cares if anyone else sees his code. He has gone beyond the need for testing; each of his programs are perfect within themselves, serene and elegant, their purpose self-evident. Truly, he has entered the mystery of Tao.''
Re: The Tao Of Programming
#7>The novice worked furiously for many days, but when his master reviewed his program, he discovered that it contained a screen editor, a set of generalized graphics routines, an artificial intelligence interface, but not the slightest mention of anything financial.
>When the master asked about this, the novice became indignant. ``Don't be so impatient,'' he said, ``I'll put in the financial stuff eventually.''
I love this one because it took me many many years to "get" this lesson: it's not about the code. It's about the Program.
EDIT: Minor edits
Re: The Tao Of Programming
#8So many pieces of truth in here. Most of them I internalized long ago, but still there is the odd one which I encountered recently. This time it's "Software rots if not used". It is indeed a mystery, but oh so true.
Not such a mystery. It stays the same, but dependencies continue to change and it does not participate in shaping them or being shaped by them.
But it's more than this. I think the real lesson is that a program is always a work in progress... like a walking person, always falling forward and putting one leg after the other to stop the fall. The moment you don't touch it anymore it dies.
"Working" can be a programmer writing code, or just a user putting data in, or submiting the occasional bug report... or anything. But the moment it stops interacting it gets out of sync with the world.
Re: The Tao Of Programming
#9> A novice programmer was once assigned to code a simple financial package. > The novice worked furiously for many days, but when his master reviewed his program, he discovered that it contained a screen editor, a set of generalized graphics routines, an artificial intelligence interface, but not the slightest mention of anything financial. > When the master asked about this, the novice became indignant. ``Don't be s…
To me, it seems the novice is correct here (supposing that those components produced are required for a good result). Is the lesson similar to that of building DSLs?
Re: The Tao Of Programming
#10[Stolen, with slight alteration, from Gerald Weinberg's The Psychology of Computer Programming]