Digital Wanderer

We live as long as we fly

Entertaining - The Tao of Programming

Very funny and true to life
[C] Geoffrey James, translator unknown

See also:

A manager asked a programmer how long it would take him to finish the program on which he was currently working.

- 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.