Something
mysterious is formed, born in the silent void.
Waiting alone and unmoving, it is at once still and
yet in constant motion. It is the source of all
programs. I do not know its name, so I will call it
the Tao of Programming. If the Tao is great, then the
operating system is great. If the operating system is
great, then the compiler is great. If the compiler is
great, then the application is great. The user is
pleased and their is harmony in the world. The Tao of
Programming flows far away and returns on the wind of
morning.
The
wise programmer is told about Tao and follows it. The
average programmer is told about Tao and searches for
it. The foolish programmer is told about Tao and
laughs at is. If it were not for laughter, there
would be no Tao. The highest sounds are hardest to
hear. Going forward is a way to retreat. Great talent
shows itself late in life. Even a perfect program
still has bugs.
The
programmers of old were mysterious and profound. We
cannot fathom their thoughts, so all we do is
describe their appearance. Aware, like a fox crossing
the water. Alert, like a general on the battlefield.
Kind, like a hostess greeting her guests. Simple,
like uncarved blocks of wood. Opaque , like black
pools in darkened caves. Who can tell the secrets of
their hearts and minds? The answer exists only in
Tao.
Grand
Master Turing once dreamed that he was a machine.
When he awoke he exclaimed: "I don't know
whether I am Turing dreaming that I am a machine, or
a machine dreaming that I am Turing!."
A
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
programmer 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."
There
once was a man who went to a computer trade show.
Each day as he entered, the man told the guard at the
door: "I am a great thief, renowned for my feats
of shoplifting. Be forewarned, for this trade show
shall not escape unplundered." This speech
disturbed the guard greatly, because there were
millions of dollars of computer equipment inside, so
he watched the man carefully. But the man merely
wandered from booth to booth, humming quietly to
himself. When the man left, the guard took him aside
and searched his clothes, but nothing was to be
found. On the next day of the trade show, the man
returned and chided the guard saying: "I escaped
with a vast booty yesterday, but today will be even
better." So the guard watched him ever more
closely, but to no avail. On the final day of the
trade show, the guard could restrain his curiosity no
longer. "Sir Thief," he said, "I am so
perplexed, I cannot live in peace. Please enlighten
me. What is it that you are stealing?" The man
smiled. "I am stealing ideas," he said.
There
was once a programmer who was attached to the court
of the warlord of Wu. The warlord asked the
programmer: "Which is easier to design: an
accounting package or an operating system?"
"An operating system," replied the
programmer. The warlord uttered an exclamation of
disbelief. "Surely an accounting package is
trivial next to the complexity of an operating
system," he said. "Not so," said the
programmer, "when designing an accounting
package, the programmer operates as a mediator
between people having different ideas: how it must
operate, how its reports must appear, and how it must
conform to the tax laws. By contrast, an operating
system is not limited by outside appearances. When
designing an operating system, the programmer seeks
the simplest harmony between machine and ideas. This
is why an operating system is easier to design."
The warlord of Wu nodded and smiled. "That is
all good and well, but which is easier to
debug?" The programmer made no reply.
A
manager went to the master programmer and showed him
the requirements document for a new application. The
manager asked the master: "How long will it take
to design this system if I assign five programmers to
it?" "It will take one year," said the
master promptly. "But we need this system
immediately or even sooner! How long will it take if
I assign ten programmers to it?" The master
programmer frowned. "In that case, it will take
two years." "And what if I assign a hundred
programmers to it?" The master programmer
shrugged. "Then the design will never be
completed," he said.
A
novice asked the master: "I have a program that
sometime runs and sometimes aborts. I have followed
the rules of programming, yet I am totally baffled.
What is the reason for this?" The master
replied: "You are confused because you do not
understand Tao. Only a fool expects rational behavior
from his fellow humans. Why do you expect it from a
machine that humans have constructed? Computers
simulate determinism; only Tao is prefect. The rules
of programming are transitory; only Tao is eternal.
Therefore you must contemplate Tao before you receive
enlightenment." "But how will I know when I
have received enlightenment?" asked the novice.
"Your program will then run correctly,"
replied the master.
Prince
Wang's programmer was coding software. His fingers
danced upon the keyboard. The program compiled
without an error message, and the program ran like a
gentle wind. "Excellent!" the Prince
exclaimed, "Your technique is faultless!"
"Technique?" said the programmer turning
from his terminal, "What I follow is Tao --
beyond all techniques! When I first began to program
I would see before me the whole problem in one mass.
After three years I no longer saw this mass. Instead,
I used subroutines. But now I see nothing. My whole
being exists in a formless void. My senses are idle.
My spirit, free to work without plan, follows its own
instinct. In short, my program writes itself. True,
sometimes there are difficult problems. I see them
coming, I slow down, I watch silently. Then I change
a single line of code and the difficulties vanish
like puffs of idle smoke. I then compile the program.
I sit still and let the joy of the work fill my
being. I close my eyes for a moment and then log
off."
Prince Wang said, "Would
that all of my programmers were as wise!"
A
well-used door needs no oil on its hinges. A
swift-flowing stream does not grow stagnant. Neither
sound nor thoughts can travel through a vacuum.
Software rots if not used. These are great mysteries.
A
manager asked a programmer how long it would take him
to finish the program on which he was working.
"I will be finished tomorrow," the
programmer promptly replied. "I think you are
being unrealistic," said the manager,
"Truthfully, how long will it take?" The
programmer thought for a moment. "I have some
features that I wish to add. This will take at least
two weeks," he finally said. "Even that is
too much to expect," insisted the manager,
"I will be satisfied if you simply tell me when
the program is complete." The programmer agreed
to this. Several years later, the manager retired. On
the way to his retirement lunch, he discovered the
programmer asleep at his terminal. He had been
programming all night.
A
novice programmer was once assigned to code 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 so
impatient," he said, " I'll put in the
financial stuff eventually."
A
manager went to his programmers and told them:
"As regards to your work hours: you are going to
have to come in at nine in the morning and leave at
five in the afternoon." At this, all of them
became angry and several resigned on the spot."
So the manager said: "All right, in that case
you may set your own working hours, as long as you
finish your projects on schedule." The
programmers, now satisfied, began to come in at noon
and work to the wee hours of the morning.
In the
east there is a shark which is larger than all other
fish. It changes into a bird whose wings are like
clouds filling the sky. When this bird moves across
the land, it brings a message from Corporate
Headquarters. This message it drops into the midst of
the programmers, like a seagull making its mark upon
the beach. Then the bird mounts on the wind and, with
the blue sky at its back, returns home.
The novice programmer stares
in wonder at the bird, for he understands it not. The
average programmer dreads the coming of the bird, for
he fears its message. The master programmer continues
to work at his terminal, for he does not know that
the bird has come and gone.
A
master programmer passed a novice programmer one day.
The master noted the novice's preoccupation with a
hand-held computer game. "Excuse me", he
said, "may I examine it?" The novice bolted
to attention and handed the device to the master. I
see that the device claims to have three levels of
play: Easy, Medium and Hard", said the master.
"Yet every such device has another level of
play, where the device seeks not to conquer the
human, nor to be conquered by the human."
"Pray, great master", implored the novice,
"how does one find this mysterious
settings?" The master dropped the device to the
ground and crushed it under foot. And suddenly the
novice was enlightened.
Hardware
met Software on the road to Changtse. Software said:
"You are Yin and I am Yang. If we travel
together we will become famous and earn vast sums of
money." And so the set forth together, thinking
to conquer the world. Presently they met Firmware,
who was dressed in tattered rage and hobbled along
propped on a thorny stick. Firmware said to them:
"The Tao lies beyond Yin and Yang. It is silent
and still as a pool of water. It does not seek fame,
therefore nobody knows its presence. It does not seek
fortune, for it is complete within itself. It exists
beyond space and time." Software and Hardware ,
ashamed, returned to their homes.