{"id":247,"date":"2013-03-12T13:11:38","date_gmt":"2013-03-12T11:11:38","guid":{"rendered":"http:\/\/www.nano-micro.gr\/bl\/?page_id=247"},"modified":"2014-05-03T21:42:49","modified_gmt":"2014-05-03T18:42:49","slug":"247-2","status":"publish","type":"page","link":"https:\/\/nano-micro.gr\/bl\/?page_id=247","title":{"rendered":"The Tao of Programming"},"content":{"rendered":"<h1 align=\"center\">The Tao Of Programming<\/h1>\n<p>Translated by Geoffrey James<\/p>\n<p>Transcribed by Duke Hillard<\/p>\n<p>Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath<\/p>\n<p>Re-html-ized and edited by Kragen Sittler<\/p>\n<hr \/>\n<h2 align=\"right\">Table of Contents<\/h2>\n<ol>\n<li><a href=\"#book1\">The Silent Void<\/a><\/li>\n<li><a href=\"#book2\">The Ancient Masters<\/a><\/li>\n<li><a href=\"#book3\">Design<\/a><\/li>\n<li><a href=\"#book4\">Coding<\/a><\/li>\n<li><a href=\"#book5\">Maintenance<\/a><\/li>\n<li><a href=\"#book6\">Management<\/a><\/li>\n<li><a href=\"#book7\">Corporate Wisdom<\/a><\/li>\n<li><a href=\"#book8\">Hardware and Software<\/a><\/li>\n<li><a href=\"#book9\">Epilogue<\/a><\/li>\n<\/ol>\n<hr \/>\n<h2 align=\"right\"><a name=\"book1\"><\/a>Book 1 &#8211; The Silent Void<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;When you have learned to snatch the error code from the trap frame, it<br \/>\nwill be time for you to leave.&#8221;<\/p>\n<h3 align=\"center\">1.1<\/h3>\n<p>Something mysterious is formed, born in the silent void. Waiting alone<br \/>\nand unmoving, it is at once still and yet in constant motion. It is<br \/>\nthe source of all programs. I do not know its name, so I will call it<br \/>\nthe Tao of Programming.<\/p>\n<p>If the Tao is great, then the operating system is great. If the<br \/>\noperating system is great, then the compiler is great. If the compiler<br \/>\nis great, then the application is great. The user is pleased and there<br \/>\nexists harmony in the world.<\/p>\n<p>The Tao of Programming flows far away and returns on the wind of morning.<\/p>\n<h3 align=\"center\">1.2<\/h3>\n<p>The Tao gave birth to machine language. Machine language gave birth to<br \/>\nthe assembler.<\/p>\n<p>The assembler gave birth to the compiler. Now there are ten thousand<br \/>\nlanguages.<\/p>\n<p>Each language has its purpose, however humble. Each language expresses<br \/>\nthe Yin and Yang of software. Each language has its place within the<br \/>\nTao.<\/p>\n<p>But do not program in <tt>COBOL<\/tt> if you can avoid it.<\/p>\n<h3 align=\"center\">1.3<\/h3>\n<p>In the beginning was the Tao. The Tao gave birth to Space and Time.<br \/>\nTherefore Space and Time are Yin and Yang of programming.<\/p>\n<p>Programmers that do not comprehend the Tao are always running out of<br \/>\ntime and space for their programs. Programmers that comprehend the<br \/>\nTao always have enough time and space to accomplish their goals.<\/p>\n<p>How could it be otherwise?<\/p>\n<h3 align=\"center\">1.4<\/h3>\n<p>The wise programmer is told about Tao and follows it. The average<br \/>\nprogrammer is told about Tao and searches for it. The foolish<br \/>\nprogrammer is told about Tao and laughs at it.<\/p>\n<p>If it were not for laughter, there would be no Tao.<\/p>\n<p>The highest sounds are hardest to hear.<\/p>\n<p>Going forward is a way to retreat.<\/p>\n<p>Great talent shows itself late in life.<\/p>\n<p>Even a perfect program still has bugs.<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book2\"><\/a> Book 2 &#8211; The Ancient Masters<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;After three days without programming, life becomes meaningless.&#8221;<\/p>\n<h3 align=\"center\">2.1<\/h3>\n<p>The programmers of old were mysterious and profound. We cannot fathom<br \/>\ntheir thoughts, so all we do is describe their appearance.<\/p>\n<p>Aware, like a fox crossing the water. Alert, like a general on the<br \/>\nbattlefield. Kind, like a hostess greeting her guests. Simple, like<br \/>\nuncarved blocks of wood. Opaque, like black pools in darkened caves.<\/p>\n<p>Who can tell the secrets of their hearts and minds?<\/p>\n<p>The answer exists only in Tao.<\/p>\n<h3 align=\"center\">2.2<\/h3>\n<p>Grand Master Turing once dreamed that he was a machine. When he awoke<br \/>\nhe exclaimed:<\/p>\n<blockquote><p>&#8220;I don&#8217;t know whether I am Turing dreaming that I am a machine,<br \/>\nor a machine dreaming that I am Turing!&#8221;<\/p><\/blockquote>\n<h3 align=\"center\">2.3<\/h3>\n<p>A programmer from a very large computer company went to a software<br \/>\nconference and then returned to report to his manager, saying: &#8220;What<br \/>\nsort of programmers work for other companies? They behaved badly and<br \/>\nwere unconcerned with appearances. Their hair was long and unkempt<br \/>\nand their clothes were wrinkled and old. They crashed our hospitality<br \/>\nsuite and they made rude noises during my presentation.&#8221;<\/p>\n<p>The manager said: &#8220;I should have never sent you to the conference.<br \/>\nThose programmers live beyond the physical world. They consider life<br \/>\nabsurd, an accidental coincidence. They come and go without knowing<br \/>\nlimitations. Without a care, they live only for their programs. Why<br \/>\nshould they bother with social conventions?<\/p>\n<p>&#8220;They are alive within the Tao.&#8221;<\/p>\n<h3 align=\"center\">2.4<\/h3>\n<p>A novice asked the Master: &#8220;Here is a programmer that never designs,<br \/>\ndocuments or tests his programs. Yet all who know him consider him<br \/>\none of the best programmers in the world. Why is this?&#8221;<\/p>\n<p>The Master replies: &#8220;That programmer has mastered the Tao. He has<br \/>\ngone beyond the need for design; he does not become angry when the<br \/>\nsystem crashes, but accepts the universe without concern. He has gone<br \/>\nbeyond the need for documentation; he no longer cares if anyone else<br \/>\nsees his code. He has gone beyond the need for testing; each of his<br \/>\nprograms are perfect within themselves, serene and elegant, their<br \/>\npurpose self-evident. Truly, he has entered the mystery of Tao.&#8221;<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book3\"><\/a> Book 3 &#8211; Design<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;When the program is being tested, it is too late to make design<br \/>\nchanges.&#8221;<\/p>\n<h3 align=\"center\">3.1<\/h3>\n<p>There once was a man who went to a computer trade show. Each day as<br \/>\nhe entered, the man told the guard at the door:<\/p>\n<blockquote><p>&#8220;I am a great thief, renowned for my feats of shoplifting. Be<br \/>\nforewarned, for this trade show shall not escape unplundered.&#8221;<\/p><\/blockquote>\n<p>This speech disturbed the guard greatly, because there were millions<br \/>\nof dollars of computer equipment inside, so he watched the man<br \/>\ncarefully. But the man merely wandered from booth to booth, humming<br \/>\nquietly to himself.<\/p>\n<p>When the man left, the guard took him aside and searched his clothes,<br \/>\nbut nothing was to be found.<\/p>\n<p>On the next day of the trade show, the man returned and chided the guard<br \/>\nsaying: &#8220;I escaped with a vast booty yesterday, but today will be even<br \/>\nbetter.&#8221; So the guard watched him ever more closely, but to no avail.<\/p>\n<p>On the final day of the trade show, the guard could restrain his curiosity<br \/>\nno longer. &#8220;Sir Thief,&#8221; he said, &#8220;I am so perplexed, I cannot live in<br \/>\npeace. Please enlighten me. What is it that you are stealing?&#8221;<\/p>\n<p>The man smiled. &#8220;I am stealing ideas,&#8221; he said.<\/p>\n<h3 align=\"center\">3.2<\/h3>\n<p>There once was a master programmer who wrote unstructured programs.<br \/>\nA novice programmer, seeking to imitate him, also began to write<br \/>\nunstructured programs. When the novice asked the master to evaluate<br \/>\nhis progress, the master criticized him for writing unstructured<br \/>\nprograms, saying, &#8220;What is appropriate for the master is not<br \/>\nappropriate for the novice. You must understand the Tao before<br \/>\ntranscending structure.&#8221;<\/p>\n<h3 align=\"center\">3.3<\/h3>\n<p>There was once a programmer who was attached to the court of the<br \/>\nwarlord of Wu. The warlord asked the programmer: &#8220;Which is easier to<br \/>\ndesign: an accounting package or an operating system?&#8221;<\/p>\n<p>&#8220;An operating system,&#8221; replied the programmer.<\/p>\n<p>The warlord uttered an exclamation of disbelief. &#8220;Surely an accounting<br \/>\npackage is trivial next to the complexity of an operating system,&#8221; he said.<\/p>\n<p>&#8220;Not so,&#8221; said the programmer, &#8220;when designing an accounting package,<br \/>\nthe programmer operates as a mediator between people having different<br \/>\nideas: how it must operate, how its reports must appear, and how it<br \/>\nmust conform to the tax laws. By contrast, an operating system is not<br \/>\nlimited by outside appearances. When designing an operating system,<br \/>\nthe programmer seeks the simplest harmony between machine and ideas.<br \/>\nThis is why an operating system is easier to design.&#8221;<\/p>\n<p>The warlord of Wu nodded and smiled. &#8220;That is all good and well, but<br \/>\nwhich is easier to debug?&#8221;<\/p>\n<p>The programmer made no reply.<\/p>\n<h3 align=\"center\">3.4<\/h3>\n<p>A manager went to the master programmer and showed him the requirements<br \/>\ndocument for a new application. The manager asked the master: &#8220;How<br \/>\nlong will it take to design this system if I assign five programmers to it?&#8221;<\/p>\n<p>&#8220;It will take one year,&#8221; said the master promptly.<\/p>\n<p>&#8220;But we need this system immediately or even sooner! How long will it<br \/>\ntake if I assign ten programmers to it?&#8221;<\/p>\n<p>The master programmer frowned. &#8220;In that case, it will take two years.&#8221;<\/p>\n<p>&#8220;And what if I assign a hundred programmers to it?&#8221;<\/p>\n<p>The master programmer shrugged. &#8220;Then the design will never be<br \/>\ncompleted,&#8221; he said.<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book4\"><\/a> Book 4 &#8211; Coding<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;A well-written program is its own heaven; a poorly-written program is its<br \/>\nown hell.&#8221;<\/p>\n<h3 align=\"center\">4.1<\/h3>\n<p>A program should be light and agile, its subroutines connected like a<br \/>\nstring of pearls. The spirit and intent of the program should be<br \/>\nretained throughout. There should be neither too little or too much,<br \/>\nneither needless loops nor useless variables, neither lack of<br \/>\nstructure nor overwhelming rigidity.<\/p>\n<p>A program should follow the `Law of Least Astonishment&#8217;. What is this<br \/>\nlaw? It is simply that the program should always respond to the user<br \/>\nin the way that astonishes him least.<\/p>\n<p>A program, no matter how complex, should act as a single unit. The program<br \/>\nshould be directed by the logic within rather than by outward appearances.<\/p>\n<p>If the program fails in these requirements, it will be in a state of<br \/>\ndisorder and confusion. The only way to correct this is to rewrite<br \/>\nthe program.<\/p>\n<h3 align=\"center\">4.2<\/h3>\n<p>A novice asked the master: &#8220;I have a program that sometime runs and<br \/>\nsometimes aborts. I have followed the rules of programming, yet I am<br \/>\ntotally baffled. What is the reason for this?&#8221;<\/p>\n<p>The master replied: &#8220;You are confused because you do not understand<br \/>\nTao. Only a fool expects rational behavior from his fellow humans.<br \/>\nWhy do you expect it from a machine that humans have constructed?<br \/>\nComputers simulate determinism; only Tao is perfect.<\/p>\n<p>&#8220;The rules of programming are transitory; only Tao is eternal.<br \/>\nTherefore you must contemplate Tao before you receive enlightenment.&#8221;<\/p>\n<p>&#8220;But how will I know when I have received enlightenment?&#8221; asked the<br \/>\nnovice.<\/p>\n<p>&#8220;Your program will then run correctly,&#8221; replied the master.<\/p>\n<h3 align=\"center\">4.3<\/h3>\n<p>A master was explaining the nature of Tao of to one of his novices.<br \/>\n&#8220;The Tao is embodied in all software &#8211; regardless of how<br \/>\ninsignificant,&#8221; said the master.<\/p>\n<p>&#8220;Is the Tao in a hand-held calculator?&#8221; asked the novice.<\/p>\n<p>&#8220;It is,&#8221; came the reply.<\/p>\n<p>&#8220;Is the Tao in a video game?&#8221; continued the novice.<\/p>\n<p>&#8220;It is even in a video game,&#8221; said the master.<\/p>\n<p>&#8220;And is the Tao in the DOS for a personal computer?&#8221;<\/p>\n<p>The master coughed and shifted his position slightly. &#8220;The lesson<br \/>\nis over for today,&#8221; he said.<\/p>\n<h3 align=\"center\">4.4<\/h3>\n<p>Prince Wang&#8217;s programmer was coding software. His fingers danced upon<br \/>\nthe keyboard. The program compiled without an error message, and the<br \/>\nprogram ran like a gentle wind.<\/p>\n<p>&#8220;Excellent!&#8221; the Prince exclaimed, &#8220;Your technique is faultless!&#8221;<\/p>\n<p>&#8220;Technique?&#8221; said the programmer turning from his terminal, &#8220;What I<br \/>\nfollow is Tao &#8211; beyond all techniques! When I first began to program<br \/>\nI would see before me the whole problem in one mass. After three<br \/>\nyears I no longer saw this mass. Instead, I used subroutines. But now<br \/>\nI see nothing. My whole being exists in a formless void. My senses<br \/>\nare idle. My spirit, free to work without plan, follows its own<br \/>\ninstinct. In short, my program writes itself. True, sometimes there<br \/>\nare difficult problems. I see them coming, I slow down, I watch<br \/>\nsilently. Then I change a single line of code and the difficulties<br \/>\nvanish like puffs of idle smoke. I then compile the program. I sit<br \/>\nstill and let the joy of the work fill my being. I close my eyes for<br \/>\na moment and then log off.&#8221;<\/p>\n<p>Prince Wang said, &#8220;Would that all of my programmers were as wise!&#8221;<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book5\"><\/a>Book 5 &#8211; Maintenance<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;Though a program be but three lines long, someday it will have to be<br \/>\nmaintained.&#8221;<\/p>\n<h3 align=\"center\">5.1<\/h3>\n<p>A well-used door needs no oil on its hinges.<\/p>\n<p>A swift-flowing stream does not grow stagnant.<\/p>\n<p>Neither sound nor thoughts can travel through a vacuum.<\/p>\n<p>Software rots if not used.<\/p>\n<p>These are great mysteries.<\/p>\n<h3 align=\"center\">5.2<\/h3>\n<p>A manager asked a programmer how long it would take him to finish<br \/>\nthe program on which he was working. &#8220;It will be finished tomorrow,&#8221;<br \/>\nthe programmer promptly replied.<\/p>\n<p>&#8220;I think you are being unrealistic,&#8221; said the manager, &#8220;Truthfully,<br \/>\nhow long will it take?&#8221;<\/p>\n<p>The programmer thought for a moment. &#8220;I have some features that I<br \/>\nwish to add. This will take at least two weeks,&#8221; he finally said.<\/p>\n<p>&#8220;Even that is too much to expect,&#8221; insisted the manager, &#8220;I will be<br \/>\nsatisfied if you simply tell me when the program is complete.&#8221;<\/p>\n<p>The programmer agreed to this.<\/p>\n<p>Several years later, the manager retired. On the way to his retirement<br \/>\nluncheon, he discovered the programmer asleep at his terminal. He had<br \/>\nbeen programming all night.<\/p>\n<h3 align=\"center\">5.3<\/h3>\n<p>A novice programmer was once assigned to code a simple financial package.<\/p>\n<p>The novice worked furiously for many days, but when his master reviewed<br \/>\nhis program, he discovered that it contained a screen editor, a set of<br \/>\ngeneralized graphics routines, an artificial intelligence interface,<br \/>\nbut not the slightest mention of anything financial.<\/p>\n<p>When the master asked about this, the novice became indignant. &#8220;Don&#8217;t<br \/>\nbe so impatient,&#8221; he said, &#8220;I&#8217;ll put in the financial stuff eventually.&#8221;<\/p>\n<h3 align=\"center\">5.4<\/h3>\n<p>Does a good farmer neglect a crop he has planted?<\/p>\n<p>Does a good teacher overlook even the most humble student?<\/p>\n<p>Does a good father allow a single child to starve?<\/p>\n<p>Does a good programmer refuse to maintain his code?<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book6\"><\/a>Book 6 &#8211; Management<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;Let the programmers be many and the managers few &#8211; then all will be<br \/>\nproductive.&#8221;<\/p>\n<h3 align=\"center\">6.1<\/h3>\n<p>When managers hold endless meetings, the programmers write games.<br \/>\nWhen accountants talk of quarterly profits, the development budget<br \/>\nis about to be cut. When senior scientists talk blue sky, the clouds<br \/>\nare about to roll in.<\/p>\n<p>Truly, this is not the Tao of Programming.<\/p>\n<p>When managers make commitments, game programs are ignored. When<br \/>\naccountants make long-range plans, harmony and order are about to<br \/>\nbe restored. When senior scientists address the problems at hand,<br \/>\nthe problems will soon be solved.<\/p>\n<p>Truly, this is the Tao of Programming.<\/p>\n<h3 align=\"center\">6.2<\/h3>\n<p>Why are programmers non-productive?<\/p>\n<p>Because their time is wasted in meetings.<\/p>\n<p>Why are programmers rebellious?<\/p>\n<p>Because the management interferes too much.<\/p>\n<p>Why are the programmers resigning one by one?<\/p>\n<p>Because they are burnt out.<\/p>\n<p>Having worked for poor management, they no longer value their jobs.<\/p>\n<h3 align=\"center\">6.3<\/h3>\n<p>A manager was about to be fired, but a programmer who worked for him<br \/>\ninvented a new program that became popular and sold well. As a result,<br \/>\nthe manager retained his job.<\/p>\n<p>The manager tried to give the programmer a bonus, but the programmer<br \/>\nrefused it, saying, &#8220;I wrote the program because I thought it was<br \/>\nan interesting concept, and thus I expect no reward.&#8221;<\/p>\n<p>The manager upon hearing this remarked, &#8220;This programmer, though he<br \/>\nholds a position of small esteem, understands well the proper duty<br \/>\nof an employee. Let us promote him to the exalted position of<br \/>\nmanagement consultant!&#8221;<\/p>\n<p>But when told this, the programmer once more refused, saying,<br \/>\n&#8220;I exist so that I can program. If I were promoted, I would do<br \/>\nnothing but waste everyone&#8217;s time. Can I go now? I have a program<br \/>\nthat I&#8217;m working on.&#8221;<\/p>\n<h3 align=\"center\">6.4<\/h3>\n<p>A manager went to his programmers and told them: &#8220;As regards to<br \/>\nyour work hours: you are going to have to come in at nine in the<br \/>\nmorning and leave at five in the afternoon.&#8221; At this, all of them<br \/>\nbecame angry and several resigned on the spot.<\/p>\n<p>So the manager said: &#8220;All right, in that case you may set your own<br \/>\nworking hours, as long as you finish your projects on schedule.&#8221;<br \/>\nThe programmers, now satisfied, began to come in at noon and work<br \/>\nto the wee hours of the morning.<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book7\"><\/a>Book 7 &#8211; Corporate Wisdom<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;You can demonstrate a program for a corporate executive, but you can&#8217;t<br \/>\nmake him computer literate.&#8221;<\/p>\n<h3 align=\"center\">7.1<\/h3>\n<p>A novice asked the master: &#8220;In the east there is a great<br \/>\ntree-structure that men call `Corporate Headquarters&#8217;. It is bloated<br \/>\nout of shape with vice presidents and accountants. It issues a<br \/>\nmultitude of memos, each saying `Go, Hence!&#8217; or `Go, Hither!&#8217; and<br \/>\nnobody knows what is meant. Every year new names are put onto the<br \/>\nbranches, but all to no avail. How can such an unnatural entity be?&#8221;<\/p>\n<p>The master replied: &#8220;You perceive this immense structure and are<br \/>\ndisturbed that it has no rational purpose. Can you not take<br \/>\namusement from its endless gyrations? Do you not enjoy the<br \/>\nuntroubled ease of programming beneath its sheltering branches?<br \/>\nWhy are you bothered by its uselessness?&#8221;<\/p>\n<h3 align=\"center\">7.2<\/h3>\n<p>In the east there is a shark which is larger than all other fish. It<br \/>\nchanges into a bird whose wings are like clouds filling the sky. When<br \/>\nthis bird moves across the land, it brings a message from Corporate<br \/>\nHeadquarters. This message it drops into the midst of the programmers,<br \/>\nlike a seagull making its mark upon the beach. Then the bird mounts<br \/>\non the wind and, with the blue sky at its back, returns home.<\/p>\n<p>The novice programmer stares in wonder at the bird, for he understands<br \/>\nit not. The average programmer dreads the coming of the bird, for he<br \/>\nfears its message. The master programmer continues to work at his<br \/>\nterminal, for he does not know that the bird has come and gone.<\/p>\n<h3 align=\"center\">7.3<\/h3>\n<p>The Magician of the Ivory Tower brought his latest invention for the<br \/>\nmaster programmer to examine. The magician wheeled a large black box<br \/>\ninto the master&#8217;s office while the master waited in silence.<\/p>\n<p>&#8220;This is an integrated, distributed, general-purpose workstation,&#8221;<br \/>\nbegan the magician, &#8220;ergonomically designed with a proprietary<br \/>\noperating system, sixth generation languages, and multiple state of<br \/>\nthe art user interfaces. It took my assistants several hundred man<br \/>\nyears to construct. Is it not amazing?&#8221;<\/p>\n<p>The master raised his eyebrows slightly. &#8220;It is indeed amazing,&#8221; he said.<\/p>\n<p>&#8220;Corporate Headquarters has commanded,&#8221; continued the magician,<br \/>\n&#8220;that everyone use this workstation as a platform for new programs.<br \/>\nDo you agree to this?&#8221;<\/p>\n<p>&#8220;Certainly,&#8221; replied the master, &#8220;I will have it transported to the<br \/>\ndata center immediately!&#8221; And the magician returned to his tower,<br \/>\nwell pleased.<\/p>\n<p>Several days later, a novice wandered into the office of the master<br \/>\nprogrammer and said, &#8220;I cannot find the listing for my new program.<br \/>\nDo you know where it might be?&#8221;<\/p>\n<p>&#8220;Yes,&#8221; replied the master, &#8220;the listings are stacked on the platform<br \/>\nin the data center.&#8221;<\/p>\n<h3 align=\"center\">7.4<\/h3>\n<p>The master programmer moves from program to program without fear.<br \/>\nNo change in management can harm him. He will not be fired, even if<br \/>\nthe project is cancelled. Why is this? He is filled with Tao.<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book8\"><\/a>Book 8 &#8211; Hardware and Software<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;Without the wind, the grass does not move. Without software, hardware is<br \/>\nuseless.&#8221;<\/p>\n<h3 align=\"center\">8.1<\/h3>\n<p>A novice asked the master: &#8220;I perceive that one computer company is<br \/>\nmuch larger than all others. It towers above its competition like a<br \/>\ngiant among dwarfs. Any one of its divisions could comprise an entire<br \/>\nbusiness. Why is this so?&#8221;<\/p>\n<p>The master replied, &#8220;Why do you ask such foolish questions? That<br \/>\ncompany is large because it is large. If it only made hardware,<br \/>\nnobody would buy it. If it only made software, nobody would use it.<br \/>\nIf it only maintained systems, people would treat it like a servant.<br \/>\nBut because it combines all of these things, people think it one of<br \/>\nthe gods! By not seeking to strive, it conquers without effort.&#8221;<\/p>\n<h3 align=\"center\">8.2<\/h3>\n<p>A master programmer passed a novice programmer one day. The master<br \/>\nnoted the novice&#8217;s preoccupation with a hand-held computer game.<br \/>\n&#8220;Excuse me,&#8221; he said, &#8220;may I examine it?&#8221;<\/p>\n<p>The novice bolted to attention and handed the device to the master.<br \/>\n&#8220;I see that the device claims to have three levels of play: Easy,<br \/>\nMedium, and Hard,&#8221; said the master. &#8220;Yet every such device has<br \/>\nanother level of play, where the device seeks not to conquer the<br \/>\nhuman, nor to be conquered by the human.&#8221;<\/p>\n<p>&#8220;Pray, great master,&#8221; implored the novice, &#8220;how does one find this<br \/>\nmysterious setting?&#8221;<\/p>\n<p>The master dropped the device to the ground and crushed it underfoot.<br \/>\nAnd suddenly the novice was enlightened.<\/p>\n<h3 align=\"center\">8.3<\/h3>\n<p>There was once a programmer who worked upon microprocessors. &#8220;Look<br \/>\nat how well off I am here,&#8221; he said to a mainframe programmer who came<br \/>\nto visit, &#8220;I have my own operating system and file storage device.<br \/>\nI do not have to share my resources with anyone. The software is self-<br \/>\nconsistent and easy-to-use. Why do you not quit your present job and<br \/>\njoin me here?&#8221;<\/p>\n<p>The mainframe programmer then began to describe his system to his friend,<br \/>\nsaying &#8220;The mainframe sits like an ancient sage meditating in the midst<br \/>\nof the data center. Its disk drives lie end-to-end like a great ocean of<br \/>\nmachinery. The software is as multifaceted as a diamond, and as convoluted<br \/>\nas a primeval jungle. The programs, each unique, move through the system<br \/>\nlike a swift-flowing river. That is why I am happy where I am.&#8221;<\/p>\n<p>The microcomputer programmer, upon hearing this, fell silent. But the<br \/>\ntwo programmers remained friends until the end of their days.<\/p>\n<h3 align=\"center\">8.4<\/h3>\n<p>Hardware met Software on the road to Changtse. Software said: &#8220;You<br \/>\nare Yin and I am Yang. If we travel together we will become famous<br \/>\nand earn vast sums of money.&#8221; And so the set forth together, thinking<br \/>\nto conquer the world.<\/p>\n<p>Presently they met Firmware, who was dressed in tattered rags and<br \/>\nhobbled along propped on a thorny stick. Firmware said to them:<br \/>\n&#8220;The Tao lies beyond Yin and Yang. It is silent and still as a pool<br \/>\nof water. It does not seek fame, therefore nobody knows its presence.<br \/>\nIt does not seek fortune, for it is complete within itself. It exists<br \/>\nbeyond space and time.&#8221;<\/p>\n<p>Software and Hardware, ashamed, returned to their homes.<\/p>\n<hr \/>\n<h2 align=\"right\"><a name=\"book9\"><\/a>Book 9 &#8211; Epilogue<\/h2>\n<p>Thus spake the master programmer:<\/p>\n<p>&#8220;It is time for you to leave.&#8221;<\/p>\n<hr \/>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Tao Of Programming Translated by Geoffrey James Transcribed by Duke Hillard Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath Re-html-ized and edited by Kragen Sittler Table of Contents The Silent Void The Ancient Masters Design Coding Maintenance Management &hellip; <a href=\"https:\/\/nano-micro.gr\/bl\/?page_id=247\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-247","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Tao of Programming - Micro - Nano (Mems, VLSI, Tactile Displays research)<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/nano-micro.gr\/bl\/?page_id=247\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Tao of Programming - Micro - Nano (Mems, VLSI, Tactile Displays research)\" \/>\n<meta property=\"og:description\" content=\"The Tao Of Programming Translated by Geoffrey James Transcribed by Duke Hillard Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath Re-html-ized and edited by Kragen Sittler Table of Contents The Silent Void The Ancient Masters Design Coding Maintenance Management &hellip; Continue reading &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/nano-micro.gr\/bl\/?page_id=247\" \/>\n<meta property=\"og:site_name\" content=\"Micro - Nano (Mems, VLSI, Tactile Displays research)\" \/>\n<meta property=\"article:modified_time\" content=\"2014-05-03T18:42:49+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"18 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/?page_id=247\",\"url\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/?page_id=247\",\"name\":\"The Tao of Programming - Micro - Nano (Mems, VLSI, Tactile Displays research)\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/#website\"},\"datePublished\":\"2013-03-12T11:11:38+00:00\",\"dateModified\":\"2014-05-03T18:42:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/?page_id=247#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/?page_id=247\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/?page_id=247#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/nano-micro.gr\\\/bl\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Tao of Programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/#website\",\"url\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/\",\"name\":\"Micro - Nano (Mems, VLSI, Tactile Displays research)\",\"description\":\"Vasileios Chouvardas website\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/nano-micro.gr\\\/bl\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The Tao of Programming - Micro - Nano (Mems, VLSI, Tactile Displays research)","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/nano-micro.gr\/bl\/?page_id=247","og_locale":"en_US","og_type":"article","og_title":"The Tao of Programming - Micro - Nano (Mems, VLSI, Tactile Displays research)","og_description":"The Tao Of Programming Translated by Geoffrey James Transcribed by Duke Hillard Transmitted by Anupam Trivedi, Sajitha Tampi, and Meghshyam Jagannath Re-html-ized and edited by Kragen Sittler Table of Contents The Silent Void The Ancient Masters Design Coding Maintenance Management &hellip; Continue reading &rarr;","og_url":"https:\/\/nano-micro.gr\/bl\/?page_id=247","og_site_name":"Micro - Nano (Mems, VLSI, Tactile Displays research)","article_modified_time":"2014-05-03T18:42:49+00:00","twitter_misc":{"Est. reading time":"18 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/nano-micro.gr\/bl\/?page_id=247","url":"https:\/\/nano-micro.gr\/bl\/?page_id=247","name":"The Tao of Programming - Micro - Nano (Mems, VLSI, Tactile Displays research)","isPartOf":{"@id":"https:\/\/nano-micro.gr\/bl\/#website"},"datePublished":"2013-03-12T11:11:38+00:00","dateModified":"2014-05-03T18:42:49+00:00","breadcrumb":{"@id":"https:\/\/nano-micro.gr\/bl\/?page_id=247#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/nano-micro.gr\/bl\/?page_id=247"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/nano-micro.gr\/bl\/?page_id=247#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/nano-micro.gr\/bl"},{"@type":"ListItem","position":2,"name":"The Tao of Programming"}]},{"@type":"WebSite","@id":"https:\/\/nano-micro.gr\/bl\/#website","url":"https:\/\/nano-micro.gr\/bl\/","name":"Micro - Nano (Mems, VLSI, Tactile Displays research)","description":"Vasileios Chouvardas website","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/nano-micro.gr\/bl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=\/wp\/v2\/pages\/247","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=247"}],"version-history":[{"count":3,"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=\/wp\/v2\/pages\/247\/revisions"}],"predecessor-version":[{"id":262,"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=\/wp\/v2\/pages\/247\/revisions\/262"}],"wp:attachment":[{"href":"https:\/\/nano-micro.gr\/bl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=247"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}