I want to live in a world of competent, intelligent, caring people. This
is a large part of the reason I was attracted to computers in the 1970's.
Computer people showed passion for their work, dedication to quality, and
above all, both a strong sense of joy in their skills and their work and
an equally strong sense of pride in the results of their work. It was a
lot of _fun_ to hang around older computer people when I was a kid, it
was utterly wonderful to be able to use large computers at the University
of Oslo and learn to use and program under TOPS-10 and TOPS-20 on _real_
computers, massive DECsystem-10s and -20s. People in the business gave
me computers to play with, I was invited to test new stuff that would not
hit the market for months, both DEC and IBM sent me half a ton of system
documentation for free. All of the people I came into contact with were
happy they could work with computers and they spread that happiness to
anyone who looked as if they had the capacity to care about computers.
Then I was shown a Lisp on a VAX running BSD Unix (probably Franz Lisp),
and more competent, intelligent, caring people virtually sprung up around
me, eager to show me cool stuff and waiting for me to grasp the elegance.
I felt like I was born a Lisper, that this was the language that matched
how I thought, as opposed to
fortran, Cobol,
Pascal or any of the other
Algol derivatives, which I had of course learned and played with. (The
only other language that had said "me" was the assembly language of the
PDP-10, MACRO-10.) But it was hard to use Lisp for real stuff, so I had
little opportunity to use it for real. Unix arrived on the scene in 1980
and I learned C, because it was the language of joy in the Unix world,
and everybody were e{*filter*}d and happy about it. Mastering it was a huge
challenge, but I did, and that was very satisfying and people came to me
and offered lots of money to help them create bug-free applications or
debug their applications. Ten years after I had discovered computers,
and still a kid, I started to make a living programming them and helping
people realize their desires on computers. I found that I could make
people happy and that my love of my work was contagious: it was just so
great to watch people share my satisfaction that something _worked_ that
they had not even dared to hope would. Over and over again, I felt
"Yeah! I am _good_ at this!" and both the computers and the people I
talked to concurred. I was far from alone in feeling like this. All
around me were people who felt the same way, who were competent and
intelligent and caring about each their own fields, and we could talk
about and study each other's work and share information and sit down
together and solve problems bigger than each of us could deal with alone
and all around us was the common understanding that computers were great,
that our languages were great, that we were great because we knew how to
use them to great benefit, that everything was just plain _great_.
I believe every computer enthusiast recognizes himself in these words. I
have certainly met so many real enthusiasts all over the world that I do
not think those who did not share these feelings worked with computers in
the 1970's, 1980's or even early 1990's. Today, we have a lot of people
who only work with computers because it pays for their expensive homes,
cars, spouses, and kids, but I do not care much about those people, and
they have no impact on the industry, either, as they are the people who
get laid off and simply go into another business they do not care much
about either if they cannot continue to work with computers. The rest of
the computer people are just as competent, intelligent, and caring as
they used to be, and they drive innovation, development, e{*filter*}ment in
new stuff of all kinds. They also keep the little fire within burning
with a passion for the older things they have loved all their lives.
For every hardware or software product, there are enthusiasts: wild,
untamed, uncontrollable people who overflow with e{*filter*}ment that "normal"
people have no way to understand. It is that _e{*filter*}ment_ that sets us
apart from the crowd. It is that _e{*filter*}ment_ that causes people to join
free software and open source projects to give away their work to others
of the same kind. This is why free software and open source are mostly
developer-to-developer, because only developers share their joy. Users
do not understand, they do not care, and they do not understand why we
care. The currency in the developer community is _enthusiasm_. Not just
your own for your own work, but for the competence, intelligence, and
caring that just about anybody else excudes, too. As a developer, you
are not judged solely by your work, but by how great you think it is,
what went into making it great, and for your capacity to understand how
great somebody else's work is.
All of the software tools on the Internet have a following behind them:
People who _care_ and who are willing to help others who care. All
languages have groups of dedicated people behind them that profess their
love for their language, in direct words, in direct action, in every way
they can. All languages with vendors behind them have developer forums
where people come with a general attitude that the tools are great and
that the vendor does a great job providing for them, unless, of course,
there are bugs, in which case the "angry side" of developers show up and
they feel personally betrayed by incompetent, unintelligent, or careless
people. But give them half a chance to prove otherwise, and developers
will love them again, forgiving and forgetting, because they share the
overall enthusiasm that drives us all. In fact, developer to developer,
we do not only expect enthusiasm, we demand it. There is something very
_wrong_ with a developer who just slops something together and leaves a
stinking heap of dysfunctional crap, and such people _anger_ developers.
The demand for enthusiasm is a profound recognition of the competence,
intelligence and caring that _must_ go into computer software. It is
among the hardest mental tasks known to man to create bug-free software.
We manage to do it because we demand competence, intelligence and caring
from _all_ the people who take part in its creation. If there are
somebody among us who fail to deliver on these counts, the are not only
doing a bad job, they are destroying part of the very fragile fabric that
know keeps everything together. Because, let us just face it right away:
Creating software is so immensely hard that we cannot afford to create it
in a world where incompetent, unintelligent, careless people must be safe
from harm. This is different from every other engineering discipline --
all of them are about ensuring that the blundering moron does not get
himself killed. Software can crash on the incompetent, bridges cannot.
We "solve" this problem by requiring of the people that set the standards
for our industry that they be enthusiasts, highly competent, highly
intelligent, very caring enhtusiasts who are devoted and dedicated to a
level of quality that would be unimaginable in any other discipline. We
do not always get what we want, but that is the requirement we have.
The optimism that the information technology industry managed to excude
to the general public a few years ago led to the hyperinflation in IT
stocks. The wild, untamed, uncontrollable e{*filter*}ment that computer
people feel towards their own work spilled over into the general public
for the first time, and the public was completely unprepared for it, so
they thought it was more than the _feeling_ shared among developers. It
went really bad. Billions of dollars have moved from the hands of those
who believed to unscrupulous, big spenders who were not developers, but
managers and other suits who got a whiff of our enthusiasm and could not
handle it. Such is the immense power of the enthusiasm that developers
and computer people feel that it has probably produced a global recession
when it affected people who did not know that it was a feeling _reserved_
for competent, intelligent, caring people who knew where it came from and
when it should be used. However sad the losses and difficult our times
because of it, the enthusiasm remains untamed among developers. They may
be more cautious in their spending and they may regret that they spent
all that free money too soon, but their core belief in competence,
intelligence, and caring has not changed. Developers everywhere are
still devoting their time and their lives to the extremely high quality
of their work. The enthusiasm that defines computer people has not been
killed by being laid off, by losing money, by failing products, even by
betrayal from managers, investors, what have you. Computers are great,
our languages are great, we are great, we just had a bit of bad luck. I
include this part of negativism because I want to show that the greatness
that keeps us together and in the business survived such a huge blow.
I think Common Lisp is a really _great_ language. I absolutely loved Guy
Steele's "Common Lisp the Language" in both editions -- he excudes more
competence, intelligence, and caring than any other programming language
book author I have read. His profound and rich sense of humor is no
accident. I think ANSI Common Lisp is the best standard there is, and
the language it defines is most certainly the top of the crop. I feel a
deep personal satisfaction in being able to program in this greatest of
languages.
Now, when I approach a Common Lisp vendor, I fully _expect_ him to share
my enthusiasm for the technology
...
read more »