Joy of Computer Programming : Java Glossary
- joy of computer programming
I have been programming computers for 54 years
since I was 15. I have always found it fascinating. Here are
some of the reasons I love it so much.
- The lack of ambiguity. When you write a computer program there is no fuzziness
about what you mean. Not even mathematics comes close.
- You can attain perfection. There exists the fastest possible way to attain a
given result in a particular computer language and there are many times when you
can be pretty sure you have attained it.
- In drawing, every correction is marred with a smudge or even a tear in the
paper. In computing, you can take 1000 tries to get it
right. The final result is seamless. It shows no trace of your effort to reach the
final simplicity and correctness.
- It allows you to be consistent. When you find a better way of doing things, you
can semi-automatically update almost your entire life work to reflect your new
- It daily presents you with brain teasers. Why doesn’t this program work?
Why is it behaving strangely? Unlike most puzzles, solving this one has practical
- Knowledge of computers has let me parachute into all kinds of professions and
pepper people with questions. For a while, I often learn the craft better than
professional practitioners, at least long enough to explain it to a computer.
- So long as no one tinkers with my programs, the programs will continue to run
for decades, as well as the day I wrote them. Even if I forget everything about how
they, work, they faithfully follow the careful instructions I gave them.
- There is a smorgasbord of new tools and techniques to learn. Every day there is
something new. You can only sample a small part of it.
- Provided I have Internet access, I can do my work from anywhere. I don’t
have to sit in an airless cubicle like most other white-collar workers.
- There is a joy, perhaps the way a sculptor feels. A computer program starts out
as a vague idea about what it will do. Only little bits of it are in sharp focus.
Gradually it takes shape, nearly always much more elegant than the original
conception. As you work with your prototype, you get more and more ideas about how
the final product should behave. Nearly everything else you do in life, e.g.
carpentry, painting wall, cleaning a floor… the final result looks shoddy
compared with how you imagined it would turn out. With computing the final product
always at works properly to spec. Even that state is provisional because at any
time you can polish it further if you find something about it that irritates you or
you can think of a better way of doing things. It reaches a state where you
can’t think of anything further to improve it. You can’t do that laying
a floor. You have to get it right the first time.
- When I was younger, I used to have a fantasy that time would stop for everyone
but me. I would then have time to catch up on all that was written about computer
programming and write all the programs the world needed, done properly. Time would
start up. I would be on my death bed, but the world would awake to a complete set
of the necessary computer tools. Real life is actually better than my fantasy.
Other programmers are working with me on this grand project. I can communicate with
them on the newsgroups and in email. Further, the hardware we use improves every
year and so do the IDEs (Integrated Development Environments)
and other tools.
- My Dad used to talk to people all over the world with short wave radio. I talk
with computer programmers all over the world using the Internet. Computers
don’t divide us on national grounds. We still have heated debates, but they
have little to do with nationality.
- Other people complain about being bored in their jobs. Whenever I find myself
stuck with some tedious programming chore, I automate it. It becomes an opportunity
to create a new toy. I thus never get bored.
- It has helped me be more objective about my own mind, its beliefs and wetware.
I tend to look on my brain as yet another computer to be meta-programmed.
- In computing you get to control, indeed have no choice but to control, every
little detail of how a program works. You have to decide exactly the way you want
it. No where else in life do you get your own way so completely?
- Refactoring is a most
emotionally-satisfying activity. It is second only to sex and I am too old and
sick for sex. You own inchoate intention suddenly shines through with blinding
clarity. It is much like a complex murder mystery suddenly coming into an aha
- Unfortunately as OS (Operating System) es and tools become more complex and more like black
boxes, much of the joy is fading. They behave more like eccentric old Alzheimer
patients than 100% predictable computer programs. You can
only guess how they work inside.