Very funny and true to life
[C] Geoffrey James, translator unknown
See also:
- I will finish tomorrow! - the programmer replied immediately.
- I think you are being unrealistic, - the manager said. - Hand on heart, how long will it take?
The programmer, having thought for a bit, said:
- I still have a few features up my sleeve that I'd like to add. It will take no less than two weeks...
-
Even if we have to wait, - the manager continued to insist, - I will be
satisfied if you just tell me when the program will be ready.
The programmer agreed to this proposal.
A few years later the manager quit. On his way to his farewell lunch, he saw the programmer asleep at his terminal.
He had been programming all night.
***
A manager
was on the verge of being fired, but a programmer who worked for him
developed a new program that became popular and sold
well. As a result, the manager kept his job.
The manager tried to give the programmer a bonus, but the programmer refused, saying:
- I wrote the program because I thought it would be an interesting concept, and therefore I don't need a reward.
The manager, upon hearing this, noted:
"This
programmer, though he holds a small position, understands the
responsibilities of an employer well. Let us promote him to the higher level
of a management consultant!"
But when he said this, the programmer refused once again, saying:
-
I exist because I program. If you promote me, I will
do nothing but waste someone's time. May I go? I
have a program I am currently working on.
***
A manager came to his programmers and told them:
- Considering the hours you've worked: you can now come in at nine in the morning and leave at five in the evening.
The programmers got angry and some immediately wanted to quit.
And the manager said:
- Alright, in that case you can set your own working hours, as long as you finish your projects on schedule.
The programmers were satisfied and began coming in at noon and working until early morning.
***
A manager
came to a master programmer and showed him a document outlining
the requirements for a new application. The manager asked the master:
- How long will it take to build this system if I assign this project to five programmers?
- It will take a year, - the master said immediately.
-
But we need this system immediately, as early as possible! How long will
it take if I assign this project to ten programmers?
The master programmer frowned:
- In that case, it will take two years.
- And what if I assign this project to a hundred programmers?
The master programmer shrugged.
- Then the project will never be completed, - he said.
***
A master programmer was inspecting a novice. Once. The master saw that the novice was engrossed in a handheld computer game.
- Excuse me, - he said. - May I take a look?
The novice focused and handed the device to the master.
-
I see that this device offers three levels of play: Easy,
Medium, and Hard, - the master said. - But also, each of these devices
has an additional level of play, when the device cannot beat
a human, but also doesn't let itself be beaten by a human.
- I beg you, great master! - the novice implored. - How does one find these mysterious settings?
The master threw the device on the floor and trampled it with his feet.
Suddenly the novice became enlightened.
***
A master was explaining the nature of the Tao to one of his novices.
- The Tao is embodied in all software - regardless of how insignificant it may seem! - the master said.
- Is there the Tao in a pocket calculator? - the novice asked.
- There is! - came the answer.
- Is there the Tao in a video game? - the novice continued.
- It is even in a video game, - the master said.
- And is there the Tao in the DOS system for personal computers?
The master coughed and gently shifted his position.
- The lesson for today is over, - he said.
***
A novice asked the Master:
-
I've seen a programmer who never formats, never tests, and never
documents his programs. But everyone who knows him considers him one of
the best programmers in the world. Why is that?
The master replied:
- This
programmer has mastered the Tao. He no longer needs formatting; he doesn't
get angry when the system crashes, but accepts the universe without
irritation. He hasn't needed documentation in a long time; he no longer
worries that anyone else will see his code. He no longer
needs testing; each of his programs is perfect in and of
itself, clear and elegant, its purpose obvious. Truly he has entered the
mystery of the Tao!!
***
A novice asked the master:
- I
wrote a program that sometimes works and sometimes crashes. I
followed the rules of programming and now I am completely stumped. What is
the reason for this?
The master replied:
- You are confused because you don't
understand the Tao. Only a fool expects rational behavior from his
fellow humans. So why do you expect it from a machine that
humans constructed? Computers simulate determinism, only the Tao is
perfect. The rules of programming are transient, only the Tao is eternal.
Therefore you must contemplate the Tao until you attain
enlightenment.
- But how will I know that I have attained enlightenment? - the novice asked.
- Your program will then run correctly, - the master replied.
***
A novice asked the master:
-
I noticed that one computer company is much larger than all
the rest. It towers over its competitors like a giant over
dwarfs. Any of its divisions could engulf an entire industry. Why
is this so?
The master replied:
- Why do you ask such foolish
questions? This company is so large because it cannot be
otherwise. If it only manufactured hardware, no one would buy
it. If it only developed systems, people would perceive it
as a servant. But because it combines all these things, people think
they are gods!
And without exerting effort, it conquers effortlessly.
***
A novice asked the master:
-
In the east there is a massive tree-like structure that people call
"Corporate Headquarters". It breaks its shape with vice presidents and
accountants. It issues a multitude of memos, each of which
says "Go There!" or "Go Here!" and no one knows what it means.
Every year new names appear on the branches and all to no avail.
How can such an unnatural entity exist?
The master replied:
-
You have seen this immense structure and you are disturbed that it has
no rational purpose. Are you not amused by its endless
spinning? Do you not enjoy the unclouded-by-problems
ease of programming under its sheltering branches? Why does
its uselessness irritate you?
***
Once a novice
programmer was assigned to write code for a simple financial package. The novice
worked frantically for many days, but when his master reviewed
the program, he discovered that it contained a screen editor, a set
of generalized graphics routines, and an artificial intelligence-equipped
interface, but not even a slight mention of anything related to
finance.
When the master asked about this, the novice became indignant.
- Don't be so impatient, - he said. - I will add the financial calculations to the final version.
***
A program
should be light and graceful, its subroutines strung together like strings
of pearls. The spirit and purpose of the program must be crystal clear. It should
not be too large nor too small, no
useless loops or unused variables, neither a lack
of structure nor an excess of rigidity.
A program must follow
the "Law of Least Astonishment". What is this law? It is simply when
the program always responds to the user in the manner that astonishes him
the least.
A program, regardless of its degree of complexity, must
act as a single whole. A program should be governed by internal
logic more than by external circumstances.
If a program does not
satisfy these requirements, it will be in a state of dissonance and
confusion. The only way to correct this is to rewrite the program.
***
A programmer
from a very large computer company went to a software
conference, and when he returned, he reported to
his manager, saying:
- What kind of programmers work in
other companies. They have bad manners and are not concerned about their appearance.
Their hair is long and uncombed, their clothes are wrinkled and old. They trashed
hospitable hotel rooms and made uncultured noise during
my presentation.
The manager said:
- I will never again
send you to a conference. These programmers live beyond
the material world. They consider life an absurd, ridiculous accident.
They come and go knowing no boundaries. Without a care, they live only for
their programs. Why should they adhere to social traditions?
They live with the Tao.
***
A frequently used door needs no oil on its hinges.
A swift-flowing stream will not turn into a swamp.
Neither sounds nor thoughts can pass through a vacuum.
If a program is not used, it rots.
These are great mysteries.
***
Can a farmer neglect the crops he has grown?
Can a teacher overlook even the most humble of his students?
Can a good father let his only child starve?
Can a good programmer refuse to maintain his code?
***
The Great Master Turing once dreamed that he was a machine. When he woke up he exclaimed:
- I do not know whether I am Turing who dreamed he was a machine, or if I am a machine dreaming that it is Turing!
***
Hardware met Software on the road to Chang Tse. Software said:
- You are Yin, and I am Yang. If we travel together we will become famous and earn vast amounts of money.
And so the pair went on, thinking about how they would conquer the whole world.
And
then they met Firmware, who was dressed in tattered rags and
limped along the road leaning on a thorny stick. Firmware told them:
-
The Tao lies beyond Yin and Yang. It is still and quiet like a pond. It does not seek
fame, therefore no one feels its presence. It does not seek fortune
because it is self-sufficient. It exists beyond
space and time.
Hardware and Software, ashamed, returned to their homes.
***
If
the presence of the Tao is great, then the operating system is good. If
the operating system is good, then the compiler is good. If the compiler
is good, then the applications are good. If the applications are good, then
the user is happy and harmony reigns in the world.
The Tao gave birth to
machine language. Machine language gave birth to the assembler. The assembler gave
birth to the compiler. Now there are ten thousand languages.
Every
language has its purpose, sometimes humble. Every language expresses the Yin and
Yang of software. Every language has its place within the Tao.
But do not program in Visual Basic if you can avoid it.
***
In the beginning there was the Tao. The Tao gave birth to Space and Time. Then, Space and Time became the Yin and Yang of programming.
Programmers
who do not embrace the Tao are always short on time and space for their
programs. Programmers who embrace the Tao always have enough time and
space to achieve their goals.
Could it be otherwise?
***
In the
east there was a shark that was larger than all other fish. It
turned into a bird whose wings filled the sky like clouds. When this
bird crossed the land, it brought a message from Corporate
Headquarters. It would drop this message into the lakes of programs, like a seagull
leaving its mark on the seashore. Then it would rise on the wind and,
leaving the blue skies behind, return home.
The novice
programmer looks at the bird in wonder because he does not understand what it is.
The average programmer dreads the coming of the bird because he is frightened by its
message. The master programmer continues working at his terminal
because he noticed neither the coming nor the going of the bird.
***
Prince Wang's
programmer was coding a program. His fingers danced across the keyboard.
The program compiled without error messages and ran like
a gentle breeze.
- Excellent! - exclaimed the Prince. - Your technique is flawless!
-
Technique? - said the programmer, turning away from his terminal. - What
I follow is the Tao - beyond all techniques. When I first started
programming, I saw the entire program before me as a single whole.
After three years I no longer saw this whole. Instead I
used subroutines. But now I see nothing. I exist entirely
in a formless void. My senses are inactive. My spirit is free and
works without a plan, obeying its own instincts. In short,
my program writes itself. True, sometimes complex problems
arise. I see them appear, I stop, I observe.
Then I change a single line of code and the difficulties vanish like a puff of smoke.
Then I compile the program. I sit motionless and let the joy of work
fill my being. I close my eyes for a moment and log off the system.
Prince Wang said:
- If only all my programmers were so wise!
***
Something
mysterious took form, born in the complete void. And it abides
alone and motionless, sometimes freezing, sometimes in constant motion. This is
the source of all programs. I do not know its name and I shall call it the Tao
of Programming.
If the presence of the Tao is great, then the operating
system is good. If the operating system is good, then the compiler
is good. If the compiler is good, then the applications are good. If
the applications are good, then the user is happy and harmony reigns in the world.
The Tao of Programming sails far away and returns on the morning wind.
***
A wizard
from the Ivory Tower brought his latest invention to the master
programmer for a trial. The wizard wheeled a black box into the master's office,
while the master waited in silence.
- This is an integrated, distributed,
general-purpose workstation - the Wizard began, - with an ergonomically
built-in proprietary operating system, sixth-generation programming
languages, and a multitude of state-of-the-art user
interfaces. It took my assistants several hundred
man-years to build. Isn't it amazing?
The master raised his eyebrows slightly.
- It is truly amazing, - he said.
-
A directive has come from Corporate Headquarters - the Wizard continued, -
that everyone must use this workstation as a platform for
new programs. Do you agree with this?
- Certainly - the master replied, I will send it to the computer center immediately!
And the Wizard returned to his tower very pleased.
A few days later, a novice walked into the master programmer's office and said:
- I can't find the listing for my new program. Do you know where it might be?
- Yes. - replied the master. - The listings are stacked on the platform in the computer center.
***
The master
programmer moves from program to program without fear. No
changes in management will harm him. He will not be fired even if
the project gets cancelled. Why does this happen? He is filled with the Tao.
***
The programmers of old were mysterious and profound. We cannot fathom their thoughts and all we can do is describe them.
Cautious,
like a fox crossing a river. Watchful, like a general on a battlefield.
Gracious, like a hostess welcoming guests. Simple, like an uncarved
block of wood. Impenetrable, like black lakes in the darkest caves.
Who will reveal the secrets of their minds and hearts?
The answer exists only in the Tao.
***
A wise
programmer hears of the Tao and follows it. An average programmer hears of
the Tao and searches for it. A foolish programmer hears of the Tao and laughs at it.
If there were no cause for laughter, there would be no Tao.
High notes are hard to perceive. Moving forward is the path to retreat.
Great talent reveals itself late in life. Even a perfect program still contains bugs.
***
Once a man went to a computer trade show. Every day as he entered, the man told the security guard at the door:
- I am a great thief, renowned for my feats of thievery. I am warning you that this exhibition will not go unrobbed.
These
words greatly disturbed the guard because millions of dollars worth of
computer equipment was on display inside, and he kept a close eye
on this man. But the man simply strolled from pavilion to
pavilion, quietly humming something under his breath. When the man was leaving,
the guard took him aside and searched him from head to toe, but found
nothing.
On the next day of the show the man returned and chided the guard, saying:
- I walked away with a massive haul yesterday, but today will be even better.
And the guard watched him even more closely, but to no avail.
On the final day of the show, the guard could no longer contain his curiosity.
- Sir Thief! - he said. - I am baffled and cannot find peace. Please enlighten me. What exactly are you stealing?
The man laughed.
- I am stealing ideas, - he said.
***
Once there was a master programmer who wrote unstructured programs.
A novice
programmer, trying to imitate him, also began to write unstructured
programs. When the novice asked the master to evaluate his progress, the master
criticized him for writing unstructured programs,
saying:
- What is appropriate for a master is not appropriate for a novice. You must understand the Tao before you transcend structure.
***
There once was a programmer who belonged to the retinue of Prince Wu. The Prince asked the programmer:
- Which is easier to write: an accounting package or an operating system?
- An operating system - the programmer replied.
The Prince let out an exclamation of disbelief.
- Surely an accounting package is far simpler compared to the complexity of an operating system, - he said.
-
Not quite. - said the programmer. - When an accounting package is being written,
the programmer acts as a mediator between people who have different ideas
about how it should work, how reports should be issued,
and how it aligns with tax legislation. Conversely,
an operating system is not bounded by such external notions.
When writing an operating system, the programmer seeks the simplest path to
harmony between the machine and ideas. That is why it is easier to write an operating
system.
Prince Wu nodded and laughed.
- That is all well and good, but which is easier to debug?
The programmer did not answer.
***
There once was a programmer who worked with microprocessors.
-
Look how good I have it here! - he told a mainframe programmer
who came to visit him. - I have my own operating system and
a file storage device. I don't share my resources with anyone.
The software is self-sufficient and easy to use. Why don't
you quit your current job and join me here?
Then the mainframe programmer began to describe his system to his friend, saying:
-
The mainframe sits in the computer center like an ancient sage
deep in meditation. Its disk drives spread from end to
end like a massive electronic ocean. The software
is multi-faceted like a diamond and intertwined like a primeval jungle.
The programs, each unique, flow through the system like a swift-flowing
river. That is why I am happy where I am.
The microcomputer programmer, hearing this, fell silent for a long time. But the two programmers remained friends until the end of their days.
***
It is said by the master programmer:
- A well-written program is the property of heaven; a poorly-written program is the property of the underworld.
***
It is said by the master programmer:
- After three days without programming, life becomes meaningless.
***
It is said by the master programmer:
- Let there be many programmers and few managers - then everyone will be productive.
***
It is said by the master programmer:
- Even if a program consists of just three lines, someday it will be expanded.
***
It is said by the master programmer:
- It's high time for you to leave.
***
It is said by the master programmer:
- When a program is being tested, it is already too late to make changes.
***
It is said by the master programmer:
- When you have learned to rip faulty code out of a failing segment, it's high time for you to leave.
***
It is said by the master programmer:
Without wind the grass is motionless. Without programs computers are useless.
***
It is said by the master programmer:
- You can demonstrate a program to a corporate executive, but you can't make him computer literate.
***
When managers hold endless meetings, programmers write games.
When
accountants talk of quarterly earnings, the development budget will be
slashed. When senior scientists are daydreaming - clouds gather.
Believe it, this is not the Tao of Programming.
When
managers make commitments, game programs are forgotten. When
accountants formulate long-term plans, harmony and order are almost
restored.
When senior scientists focus on the problems at hand, the problems will soon be solved.
Believe it, this is the Tao of Programming.
***
Why are programmers not productive?
Because their time is wasted in meetings.
Why are programmers rebellious?
Because management interferes too much.
Why do programmers quit one by one?
Because they burn out.
Working for bad management, they no longer value their work.