/
Текст
The Tao of
Programming
The Tao of
Programming
GEOFFREY JAMES
Library of Congress Cataloging-in-Publication Data
James, Geoffrey, 1953-
The tao of programming.
1. Electronic digital computers—Programming—
Anecdotes, facetiae, satire, etc. I. Title.
Qa76.6.J354 1986 005 86-18635
ISBN 0-931137-07-1
© 1987 by Geoffrey James
Published by InfoBooks, Santa Monica, CA 90406
All rights reserved. No part of this book may be
reproduced, in any form or by any means, without
permission in writing from the publisher.
Cover design and illustration: Gloria Garland
Text design and illustrations: Gloria Garland
Published in the United States of America
10 987654321
ISBN 0-931137-07-1
INFO
■ P.O. BOX 1018
SANTA MONICA
CALIFORNIA 90406
BOOKS
iv
The Tao of
Programming
c
"3
For my friend, John L. Joseph, who
provided much of the inspiration for
this book.
v
Frontispiece
Ancient likeness of the ninth immortal
of computer programming. He is
shown with the traditional lotus (which
symbolizes project planning), crane
(assembly code), jackal (job control
language), and floppy disk (file
management system). He is suspended
between earth and sky, meditating on
the contents of the cosmic Q-Register.
Above him are pictured flitting bats,
which represent the distractions of the
material world. Below him, the
primordial dragon of chaos gives birth to the
mystery of Tao.
VII
Preface
The field of compuarcheology is
sufficiently new that even an amateur like
myself can sometimes stumble upon
significant discoveries. Several years
ago, as I was making a somewhat
desultory search through a pile of obsolete
punch cards, I discovered what
appeared to be a set of coded bit-map
images. The images were sandwiched
among thousands of obsolete RPG
programs and I wouldn't have given
them a second glance if it hadn't been
for a hand-written note on one of the
cards saying: "Destroy after
processing."
ix
Preface
C 3
This quite naturally piqued my interest
and I was determined to discover the
contents of the mysterious card pack. It
was clear from the first that the images
had been scrambled and encrypted, but
with perseverence (as well as hundreds
of hours of raw CPU time), I was
finally able to produce a rough outline of
the first image, which is reproduced at
the beginning of Book One.
But the decryption of the images turned
out to be the simplest part of the project.
The manuscript was in an unfamiliar
dialect and had to be transcribed before
any realistic translation could be
attempted. As this effort proceeded, it
x
Preface
C 3
became clear to me that I was dealing
not with a simple set of test images (as
I had originally believed), but the
legendary "Tao of Programming" itself.
It is difficult to describe my excitement
at this revelation. Though I had
certainly heard of the "Tao of
Programming", I had never seen a copy of the
work nor met anybody who possessed
one. I had heard many times about how
the "Tao of Programming" had a
profound, if covert, effect upon the early
development of computers. According
to these legends, the "Tao of
Programming" represented the first attempt to
treat the art of programming as an
xi
Preface
C H
organic whole. As such it was
violently opposed by both the academic
and business communities, who viewed
it as a threat to the established order of
things. The "Tao of Programming"
was forced underground, circulating
among select programmers and then
only after rigorous initiations.
Eventually, this so-called "Integration
Sect" became so powerful that it could
no longer remain clandestine. The
persecutions that followed (often
referred to as "The Great Lay-Off)
resulted not only in the destruction of the
sect but (it was assumed) the loss of
xii
Preface
C 3
the esoteric literature that comprised
the sect's inner teachings.
The truth in these legends is impossible
to verify and thus should be discounted
as mere colorful tales, more the
province of the anthropologist than the
serious compuarcheologist. But now that
a manuscript has finally surfaced, it
may be possible to separate the truth
from the myth.
The origins of the "Tao of
Programming" are lost in the mists of time.
From internal references we know that
certain passages can be dated from after
the invention of the integrated circuit.
But more accurate placing of the work
xiii
Preface
C H
will have to wait until the full force of
scholarship has been turned upon this
hitherto-unknown classic.
The authorship of the "Tao of
Programming" also remains a mystery. Tradition
assigns certain portions of the text to
Yong Yo Sef of the Sixth See Pee
dynasty. Other scholars (I shall name no
names) have somehow managed to
conclude that the work is a mere
compilation of tales whose authorship can never
be determined. However, all agree that
the profundity of the work is clearly of
such magnitude that the existence of the
author is a trivial issue at best.
xiv
Preface
C U
Perhaps these controversies can be
cleared up now that the "Tao of
Programming" is about to be published.
If so, then the effort that I have put into
preparing the manuscript will not have
been in vain. However, I must confess
that it is with some hesitation that I put
forward a translation of this classic. All
translations are by definition
interpretive, and the flavor of the original can
only be echoed faintly and never
reproduced in its full richness.
The question has occasionally come up
concerning my own beliefs. I hereby
state unequivocally that while I respect
the tradition that the "Tao of
Programming" represents, I would never adhere
to the more radical doctrines that it con-
xv
Preface
C 3
tains. In particular, I find the attitude of
the text to management and corporations
completely reprehensible, though
perhaps understandable given the political
climate of the times.
With no further ado or further non-ado,
I present my humble rendition of the
"Tao of Programming". Those who
understand the true nature of Tao will,
I trust, be amused by my presumption.
Geoffrey James
Los Angeles, 1986
xvi
Table of Contents
Book One
The Silent Void 1
Book Two
The Ancient Masters 13
Book Three
Design 29
Book Four
Coding 51
Book Five
Maintenance 71
Book Six
Management 85
Book Seven
Corporate Wisdom 101
Book Eight
Hardware and Software 121
Book Nine
Epilogue 143
xvii
Jam * ji
<^%-£ *
^ ra aft it
M
n J to *. *
M
%
THE
SILENT
VOID
Book One
The Tao of Programming
c n
fctt
A<*
#JA
MS
\m
m
mi
&M
The Silent Void
C H
Thus spake the master programmer:
"When you have learned to snatch the
error code from the trap frame, it will
be time for you to leave."
3
The Tao of Programming
C 3
ft£AMJ
flttMltt
At&ft
The Silent Void
C 3
1.1
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 there is harmony in the world.
The Tao of Programming flows far
away and returns on the wind of
morning.
5
The Tao of Programming
C U
ttttfiA
'JMIAA
flffA¥
ISteAA
mm
&MA
6
The Silent Void
C 3
1.2
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.
Each language has its purpose, however
humble. Each language expresses the
yin and yang of software. Each
language has its place within the Tao.
But do not program in Cobol if you can
avoid it
7
The Tao of Programming
C 3
££*&
AAMi
(K«£tt
ttAA£
ftftAl
sfclttfi
fliftttfi
£BAft
Ififctt
8
The Silent Void
C 3
1.3
In the beginning was the Tao.
The Tao gave birth to Space and Time.
Therefore Space and Time are the Yin
and Yang of Programming.
Programmers that do not comprehend
Tao are always running out of time and
space for their programs. Programmers
that comprehend Tao always have
enough time and space to accomplish
their goals.
How could it be otherwise?
9
The Tao of Programming
C 3
\±mmt£
tt«i«!Bf£
AflMtftft
*{ftfitt&
dttttH
fcttttitt
±mn
10
The Silent Void
c u
1.4
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 it.
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 Tao is hidden beyond all
understanding.
11
THE
ANCIENT
MASTERS
Book Two
The Tao of Programming
c u
ttttt
mm
«WftA
fittft
&m
&m
ittft
ttttfll
MM
flliRltt
ttfiffl
AH
14
The Ancient Masters
Thus spake the master programmer:
"After three days without programming,
life becomes meaningless."
($
15
The Tao of Programming
C 3
mum
f£ ft ft ft A
mmxa
mam
imam
mtm
mm®
*#&#
tt^^ft
mm®
®£$®
16
The Ancient Masters
C 3
2.1
The programmers of old were
mysterious and profound. We cannot fathom
their thoughts, so all we can 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.
17
The Tao of Programming
C 3
AAfe
mm
AfeA
m±n
tt#I
fifftt
fittti
Kifilft
AA
18
The Ancient Masters
C H
2.2
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!"
19
The Tao of Programming
C 3
mm®
AMfcttft
«A£fitt
20
The Ancient Masters
C 3
2.3
A programmer from a very large
computer company went to a software
conference and then returned to report
to his manager, saying: "What sort of
programmers work for other computer
companies? They behaved badly and
were unconcerned with appearances.
Their hair was long and unkempt and
their clothes were wrinkled and old.
They crashed our hospitality suite and
21
The Tao of Programming
m±\±m
mm®
mm
22
The Ancient Masters
C 3
they made rude noises during my
presentation."
The manager said: "I should never have
sent you to the conference. Those
programmers live beyond the physical world.
They consider life absurd, an accidental
coincidence. They come and go without
knowing limitations. Without a care, they
live only for their programs. Why should
they bother with social conventions?
They are alive within the Tao."
23
The Tao of Programming
c 3
mtmm
<M££fiIA
HAMUm
HKfefclA
ttftteAA£
mmftm
24
The Ancient Masters
C 3
2.4
A novice asked the master: "Here is a
programmer who never designs,
documents, or tests his programs. Yet all
who know him consider him the one
of the best programmers in the world.
Why is this?"
The master replied: "That programmer
has mastered the Tao. He has gone
beyond the need for design; he does not
become angry when the system crashes,
25
The Tao of Programming
C 3
Attftfitt
ntmm
mums
£AA<&£
mm*
£ttIAtt
mam*
mm
26
The Ancient Masters
c n
but accepts the universe without
concern. He has gone beyond the need for
documentation; he no longer cares if
anyone 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
ofTao."
27
n
u
DESIGN
Book Three
Q
3
The Tao of Programming
C 3
ttAt;
mm
$AA
*$£
Etttt
ffifflfli
Attf*
1^
30
Design
Thus spake the master programmer:
"When the program is being tested, it is
too late to make design changes."
®
31
The Tao of Programming
C 3
i«tttti^ftAft
32
Design
C 3
3.1
There was once 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
33
The Tao of Programming
C U
&kmmm&
mimtmmui
m\mmmm
mmnx^A\±
34
Design
c u
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
35
The Tao of Programming
C 3
£ttACIHBAA$
ttiBHSA&MS
&ttfefettttA$
fiJiflHtSAAfi
ttlflflAtefltt
(JtettftftftttA
fM$£tt££A
^flftAtKAGI
f6JAttttI&$
36
Design
C H
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 curiousity 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.
37
The Tao of Programming
C 3
mm\m
\±±mm
\±m±m±
m±\mx
\i\mm
mum
Mm®
mmi
38
Design
C 3
3.2
There was once a master programmer
who wrote unstructured programs. A
novice programmer, seeking 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 the master is not
appropriate for the novice. You must
understand Tao before transcending
structure."
39
The Tao of Programming
C 3
Sfi&AflA
mawm
MtiffiAft
&ttftfill
40
Design
C 3
3.3
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.
41
The Tao of Programming
ffittfl£?Stt
IfllttHttfl
AflHI&Itt
AGHIftMl
(KjpfoM&ttlpI
fittflteAS
ttfelAM
^IMfft^A
ttttttlttA
tt&fgflAft
fi(6£SAI
42
Design
C 3
"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 tax laws.
43
The Tao of Programming
C U
\±mu
&*££
m\m
mm
mm
mam
mm
mn±
mm
mam
44
Design
C 3
By contrast, an operating system is not
limited by outward 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," he said,
"but which is easier to debug?"
The programmer made no reply.
45
The Tao of Programming
C 3
mm
mm
ma
Km±
£\m
mm
£*&
fpTtl
mm
am
46
Design
C U
3.4
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?"
47
The Tao of Programming
mm
^Vki%
Kit
m
AM
Att
48
Design
C 3
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.
49
n
n
CODING
Book Four
C
D
The Tao of Programming
C 3
m
AA
\m
Mi
(Sfi
52
Coding
Thus spake the master programmer:
"A well-written program is its own
heaven; a poorly-written program its
own hell."
®
53
The Tao of Programming
C U
Affetttt
ftA^A
ft£ttl5|
flUSttA
ttfWP
fflAfltt
Afetttt
Attl^
££ttA
^111
¥A<tA
tt^fiA
54
Coding
C 3
4.1
A program should be light and agile,
its subroutines connected like a string
of pearls. The spirit and intent of the
program should be retained throughout.
There should be neither too little nor
too much, neither needless loops nor
useless variables, neither lack of
structure nor overwhelming rigidity.
A program should follow the 'Law of
Least Astonishment'. What is this law?
55
The Tao of Programming
c 3
ftAttfi
i£i<*
AM£
MttA
flMfcflA
Mil
&A&
56
Coding
C 3
It is simply that the program should
always respond to the user in the way
that astonishes him least.
A program, no matter how complex,
should act as a single unit. The program
should be directed by the logic within
rather than by outward appearances.
If the program fails in these
requirements, it will be in a state of disorder
and confusion. The only way to correct
this is to rewrite the program.
57
The Tao of Programming
C 3
immm
«|5HIttfitt
MttAfttt
AAflfiffi£
ffl*A«Att
58
Coding
C 3
4.2
A novice asked the master: "I have a
program that sometimes 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
59
The Tao of Programming
C 3
KSjcttA
fgflAll
ftfcflHEtt
AlflfPfe
fgttf&fe
ffittAtt
fiMlfg
60
Coding
c u
expect it from a machine that humans
have constructed? Computers simulate
determinism; only Tao is perfect.
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.
61
The Tao of Programming
c n
tt$A#
AMAfe
f££ffitt
&feA£
AftttA
fcftflA
ttttflA
Btt«tt
iA#J^
62
Coding
C 3
4.3
A master was explaining the nature of
Tao to one of his novices. "The Tao is
embodied in all software — regardless
of how insignificant," said the master.
"Is the Tao in a hand-held calculator?'
asked the novice.
"It is," came the reply.
"Is the Tao in a video game?" continued
the novice.
63
The Tao of Programming
mm\±
mtm
mm
ttttfU
i±mm
A$A1
ttttAfu
MM
64
Coding
C D
"It is even in a video game," said the
master.
"And is the Tao in the DOS for a
personal computer?"
The master coughed and shifted his
position slightly. "The lesson is over
for today," he said.
65
The Tao of Programming
C H
£ttHftfi$
mmtm
^ISAMI
ftftAd&fi
A»lttA^
66
Coding
C 3
4.4
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 all in one
mass. After three years I no longer saw
this mass. Instead, I used subroutines.
But now, I see nothing. My whole
67
The Tao of Programming
c u
nummm
AttllAlfi
mAttttm
mttmsx
MMAMiiA
ASSISE?!!!
smtMmM
\m±m±\±
68
Coding
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 my
programmers were as wise!"
69
c n
MAINTENANCE
Book Five
C 3
The Tao of Programming
C 3
teflt;
£11
m
ttA
m±
\±±
\m
%®
m±
ftfli
am
»<*
itt
(KH
A£
ttfll
72
Maintenance
Thus spake the master programmer:
"Though a program be but three lines
long, someday it will have to be
maintained."
(£
73
The Tao of Programming
C 3
tirna
ISAM
\mxm
AAftLtt
Ai£M
mm
ffl'JAM
Lit?
(MM*
74
Maintenance
C 3
5.1
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.
75
The Tao of Programming
C 3
nmmAExm
ttmmwmAim
mmmmmM
76
Maintenance
C 3
5.2
A manager asked a programmer how
long it would take him to the finish the
program on which he was working.
"I will be finished tomorrow," the
programmer promptly replied.
"I think that 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
77
The Tao of Programming
c 3
mumximm
fflA£fl£ft£rafltt
tt£fi£Afi£Ife
mmmmim
78
Maintenance
C 3
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.
79
The Tao of Programming
C 3
MtitfftEfflffiA
MAAHffittfiHl
«i£iftHA$t:A
££it£t:lAftA
feMAteftte^tt
&AttMf££AA
ffi^HA£ft(6«
£«teHfittfiK
fl£tt£l"te*AA
80
Maintenance
C 3
5.3
A novice programmer was once
assigned to code a simple financial
package.
The novice worked furiously for many
days, but when his master reviewed the
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."
81
The Tao of Programming
C 3
iMiimmiMmimm
imEmm^Ammm
mmttxmmtmm
mimmxmxmzx
minmBAmimim
ttHfitt£Att£AttA$H
$xmmummA
82
Maintenance
C 3
5.4
Does a good farmer neglect a crop he
has planted?
Does a good teacher overlook even the
most humble student?
Does a good father allow a single child
to starve?
Does a good programmer refuse to
maintain his code?
83
c
u
MANAGEMENT
Book Six
C H
The Tao of Programming
C 3
mm
ia
f6Jtt
lift
Affi
ftffi
IH
tt«
fiffi
86
Management
Thus spake the master programmer:
"Let the programmers be many and
the managers few — then all will be
productive."
•9
87
The Tao of Programming
c n
AttttteA
mmm±
mum
mmm
mama
AfeffiMt
Itt*£A
mum
imimx
HfeA^H*
88
Management
C U
6.1
When managers hold endless meetings,
the programmers write games. When
accountants talk of quarterly profits,
the development budget is about to be
cut. When senior scientists talk blue
sky, the clouds are about to roll in.
Truly, this is not the Tao of
Programming.
When managers make commitments,
game programs are ignored. When
89
The Tao of Programming
C D
nwmm
mmmm
umm
S«A¥tt
fifcAIffl
90
Management
C 3
accountants make long-range plans,
harmony and order are about to be
restored. When senior scientists
address the problems at hand, then
the problems will soon be solved.
Truly, this is the Tao of Programming.
91
The Tao of Programming
C 3
mAmmm
AtffifettttSI
mmmma
ttrnmmm
mmmm
ammmn
92
Management
c n
6.2
Why are the programmers
nonproductive?
Because their time is wasted in
meetings.
Why are the programmers rebellious?
Because the management interferes
too much.
Why are the programmers resigning
one by one?
Because they are burnt out.
Having worked for poor management,
they no longer value their jobs.
93
The Tao of Programming
C 3
tmm
§Jffi££A
immm
ftS£IA
IftAttt
94
Management
C U
6.3
A manager was about to be fired, but
one of the programmers who worked
for him invented a new program that
became popular and sold well. As a
result of this, the manager retained
his job.
The manager tried to give the
programmer a bonus, but the programmer
refused it, saying, "I wrote the program
95
The Tao of Programming
ttttAfflfi
ttftftA£
Att£A£
ffiA£tefe
mums
AflttAtt
96
Management
C U
because I thought it was an interesting
concept, and thus I expect no reward."
The manager upon hearing this
remarked, "This programmer, though
he holds a position of small esteem,
understands well the proper duty
of an employee. Let us promote him
to the exalted position of management
consultant!"
But when told this, the programmer
once more refused, saying, "I exist so
that I can program. If I were promoted,
I would do nothing but waste
everyone's time. Can I go now? I have
a program that I am working on."
97
The Tao of Programming
c n
£ttS0ttA«tt
fomMxmti
^HftAftftfiteA
flttflKffiflMHA
flAittffifflft
Itt&Attflte
flfflMttftA
IA^ffi#£
98
Management
C 3
6.4
A manager went to his programmers
and told them: "As regards your
working 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 until the wee hours of the
morning.
99
..^Arf^^rfc^-.'' ■*»»£*'•*"''*«
i
CORPORATE
WISDOM
Book Seven
The Tao of Programming
ttfc
fffl'J
m
&\
tttt
\m
m±
im
m
m
102
Corporate Wisdom
Thus spake the master programmer:
"You can demonstrate a program for
an executive, but you can't make him
computer literate."
$
103
The Tao of Programming
c u
ttttttlBHft*
ttttWHSA
(6JAt:£flI
£ttAttfcH
ftAfiftfttt
tt£ttfc«ft
mamm
104
Corporate Wisdom
C U
7.1
A novice asked the master: "In the east
there is a great tree-structure that men
call 'Corporate Headquarters'. It is
bloated out of shape with vice
presidents and accountants. It issues a
multitude of memos, each saying 'Go
Hence!' or 'Go Hither!' and nobody
knows what is meant. Every year new
names are put onto the branches, but all
105
The Tao of Programming
£ttAtt£«
ftftettiA
IAMBIC
filAtt^fe
flliiflAli
fifitttt*
106
Corporate Wisdom
C 3
to no avail. How can such an unnatural
entity continue to exist?"
The master replied: "You perceive this
immense structure and are disturbed that
it has no rational purpose. Can you not
take amusement from its endless
gyrations? Do you not enjoy the
untroubled ease of programming beneath
its sheltering branches? Why then are
you bothered by its uselessness?"
107
The Tao of Programming
C 3
ttftiffttA
<6Af5J«fctt
ttAfffittft
0tt¥AAtt
«fi&ftft(6
ttttAflKKffl
AAftffllfi
iAftf^tttt
108
Corporate Wisdom
C 3
7.2
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
109
The Tao of Programming
C H
tt*Afittfitt
tt*fcAtt*tttt
AlAt£fA
*tttttt€ttA
110
Corporate Wisdom
C U
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.
111
The Tao of Programming
C 3
mmm±
HttAfttt
fcttittA
mam
ttlMA
ttftttil
±m±m
£AIttft
AfgfWJ
MiRlAi
112
Corporate Wisdom
C 3
7.3
The Magician of the Ivory Tower
brought his latest invention for the
master programmer to examine. The
magician wheeled a large black box
into the master's office while the
master waited in silence.
"This is an integrated, distributed,
general-purpose workstation," began the
magician, "ergonomically designed with
a proprietary operating system, sixth
generation languages, and multiple
113
The Tao of Programming
C U
££fi*tt£ftA
mmtmm
«AttAf*mra
tt££«LiHtt«
Att0ttAfli««
fftt^ftfeAffl
fflfpHSAAfffttt
114
Corporate Wisdom
C 3
state-of-the-art user interfaces. It took
my assistants several hundred man
years to construct. Is it not amazing?"
The master raised his eyebrows
slightly. "It is indeed amazing," he said.
"Corporate headquarters has
commanded," continued the magician,
"that everyone use this workstation
as a platform for new programs.
Do you agree to this?"
"Certainly," replied the master, "I will
have it transported to the data center
115
The Tao of Programming
c u
£Afifefcttft
A£«tt£ttE
tt^«^A«
Aftfitefe£fl
Aflftftftftfl
AttlffGW
Mi£MM
AfSttHII
116
Corporate Wisdom
C 3
immediately!" And the magician
returned to his tower, well pleased.
Several days later, a novice wandered
into the office of the master programmer
and said, "I cannot 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 data
center."
117
The Tao of Programming
C 3
m±nm±
1±A$Htt
fiMiftft
^HSAft
118
Corporate Wisdom
C 3
7.4
The master programmer moves from
program to program without fear. No
change in management can harm him.
He will not be fired, even if the project
is cancelled. Why is this? He is filled
with Tao.
119
HARDWARE
AND
SOFTWARE
Book Eight
The Tao of Programming
fcAttftH
#££$
ftA£
ftttA
All
A&A
122
Hardware and Software
Thus spake the master programmer:
"Without the wind, the grass does not
move. Without software, hardware is
useless."
(£
123
The Tao of Programming
c 3
mm
tttttA
ami*
fittUtt
Attftfi
ttfflAft
*fcA£
124
Hardware and Software
C 3
8.1
A novice asked the master: "I perceive
that one computer company is much
larger than all others. It towers above
its competition like a giant among
dwarfs. Any one of its divisions could
comprise an entire business. Why is
this so?"
The master replied: "Why do you ask
such foolish questions? That company
125
The Tao of Programming
C 3
ftAfttt
<mm*
mtxfo
mm
xma
ma
mm
ttttZL
ttfpjft
&Aft
126
Hardware and Software
C 3
is large because it is large. If it only
made hardware, nobody would buy it.
If it only made software, nobody would
use it. If it only maintained systems,
people would treat it like a servant.
But because it combines all these
things, people think it one of the gods!
By not seeking to strive, it conquers
without effort."
127
The Tao of Programming
c n
mmrnm
i±xmmi±{±
mmmx
mmtttM
MXiumik
128
Hardware and Software
L 3
8.2
A master programmer passed a novice
programmer one day. The master noted
the novice's preoccupation with a
handheld 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
129
The Tao of Programming
c u
fpJA$£teII
mumum
fl&ttAtt&
mmnk£
130
Hardware and Software
c n
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
setting?"
The master dropped the device to the
ground and crushed it underfoot.
And suddenly the novice was
enlightened.
131
The Tao of Programming
C 3
i±mma
{±i±m±n
<iA£m
&Axm
132
Hardware and Software
C 3
8.3
There was once a programmer who
worked upon microprocessors. "Look
at how well off I am here," he said to a
mainframe programmer who came to
visit, "I have my own operating system
and file storage device. I do not have to
share my resources with anyone. The
software is self-consistent and easy-
133
The Tao of Programming
C 3
flflttfttt
mmmi
mma
mma
tt£Mtt
134
Hardware and Software
C 3
to-use. Why do you not quit your
present job and join me here?"
The mainframe programmer then began
to describe his system to his friend,
saying: "The mainframe sits like an
ancient sage meditating in the midst
of the data center. Its disk drives
lie end-to-end like a great ocean of
machinery. The software is as
135
The Tao of Programming
C 3
ttxmn
mmm
amm®
ttsmm
mm®
&ti&A¥f5J
mm*
136
Hardware and Software
C 3
multifaceted as a diamond, and as
convoluted as a primeval jungle.
The programs, each unique, move
through the system like a swift-flowing
river. That is why I am happy where I
am.
The microprocessor programmer, upon
hearing this, fell silent. But the two
programmers remained friends until the
end of their days.
137
The Tao of Programming
C 3
ftttftAttA
mmma
(&7cA£Aft
tt<tttAA^
mxitmn
i±mm\m
138
Hardware and Software
C 3
8.4
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
amounts of money." And so they set
forth together, thinking to conquer
the world.
Presently they met Firmware, who was
dressed in tattered rags and hobbled
along propped on a thorny stick.
Firmware said to them: "The Tao lies beyond
139
The Tao of Programming
C 3
mmmtt
ftMfflM
AMAH
*fiAA(S$
mini
$&A£<g
fcfc*fcA
ttiS««l|pI
AftftM
ftfi£ttA
MflttA
140
Hardware and Software
C U
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."
Hardware and Software, ashamed,
returned to their homes.
141
EPILOGUE
Book Nine
C
n
The Tao of Programming
<Ett
$&
<m
m±
m
ft
144
Epiloque
Thus spake the master programmer:
"Time for you to leave."
145
About The Author
c n
Geoffrey James is a magna cum laude
graduate of the University of California
and has been a software engineer for a
major computer manufacturer since
1977.
In 1984 he received a technical
excellence award for the design and
implementation of an advanced computer-
aided publishing system.
He is author of Enochian Evocation (a
translation / transcription of a 16th-
century proto-scientific manuscript) and
Document Databases (a comprehensive
study of automated publications
methodology). Document Databases is
recognized as the outstanding text in the
field of online documentation and
electronic publishing.
147
About The Book
c u
We enjoyed making this book for you.
Our intention was to share with you a
few serious thoughts presented on soft
pillows of warm smiles. We hope you
enjoy them both. Write to us at Info-
Books and let us know.
The Tao of Programming was
conceived by the author while he was doing
Tai Chi, which he has practiced for over
four years. At the end of class it was
discussed with the Publisher, who was
just then beginning Tai Chi.
The text was electronically formatted
and adjusted on the Macintosh computer
and typeset on a LaserWriter, using
Times for the body text and Helvetica
for the running heads.
149
About The Book
C 3
The illustrations were conceived during
candle-light meditations by our Art
Director and wonderful, warm,
laughing conversations between our Art
Director and Publisher; discussed
with author and then drawn by our
Art Director.
The typeset pages and art were very
lovingly put together by hand and sent
off to our printer in the heartland of
America.
Everyone who has read the book so far
has very definite favorites among the
Proverbs (each person chooses
different ones, by the way) and has asked us
for poster-sized reproductions. We
were delighted. And we've made
selected Proverbs available as attrac-
150
About The Book
C U
tively illustrated posters; so you can
have your favorite selections decorating
your home or office. Write to us for
our catalog.
Enjoy.
cococooocxsoccoooaxxnxarKa^
If you're interested in electronic / desk
top publishing or more information
about how this book was produced
contact us at InfoBooks.
151
Other Titles Available From:
InfoBooks
P.O. Box 1018
Santa Monica, California 90406
213-470-6786
Please send me the following books
No.
Title
The Complete Macintosh Sourcebook
Your Best Interest
Under The Apple
The Tao of Programming
The One-Hour Commodore 64
The One-Hour Atari XL
Unit
Price
$24.95
$ 9.95
$15.95
$ 7.95
$ 5.95
$ 5.95
Extended
Price
Taxes: In California please add 6.5% sales tax.
Shipping: $1.50 first book; $1.00 each additional book for surface mail.
$.2.50 first book; $2.00 each additional book for first class.
Commercial orders will be shipped UPS surface.
Ship To:
Name
Company
Address
City State Zip
Telephone
Payment
[]Check [ ]MoneyOrder [ ]M/C [ ]Visa []Amex
Card No.
Bank No. Expiration Date
Signature
Thank You For Your Order
Our —c
intention
with this little
book is to share with
you a few serious thoughts
presented on soft pillows of warm smiles.
give you an entertaining, tongue-in-ch
look at computing through the eyes of
ancient masters. These 33 epigrams hs
passed through generations since the dawi
the computer age and form a philosophy
humor to live by and work with.
~ There are many bo<
about programming,
they all deal with mere surf
issues, such as algorithms, 1
guage constructs, and the like. The'
of Programming goes right to the hear
the most important questions that fi
today's programmers. Questions such
What is the meaning of life? Why do I exi
and How can I debug a program that lo
the keyboard?
The Too of Programming is a must for
computerist who likes to laugh.
ISBN 0-931137-C7-1-795
INFO
^
BOOKS