The Bipolar Lisp Programmer

Having programmed in or around Lisp for nearly 20 years now, and
spectated a lot of Usenet postings and blogs written by Lisp
programmers, I have often wondered if there was such a thing as a 'Lisp
character', in the same way that groups and nations have a national
character.

After some thought, I decided there was definitely a Lisp profile
amongst the people using the language and that this character was
responsible for some of the interesting history of this language and its
peculiar strengths and weaknesses.

So here is an essay which will no doubt annoy several and lead to
argument.  Its called

The Bipolar Lisp Programmer

Any lecturer who serves his time will probably graduate hundreds, if not
thousands of students.  Mostly they merge into a blur; like those
paintings of crowd scenes where the leading faces are clearly picked out
and the rest just have iconic representations.   This anonymity can be
embarrassing when some past student hails you by name and you really
haven't got the foggiest idea of who he or she is.  It's both nice to be
remembered and also toe curlingly embarrassing to admit that you cannot
recognise who you are talking to.

But some faces you do remember; students who did a project under you.
Also two other categories - the very good and the very bad.   Brilliance
and abject failure both stick in the mind. And one of the oddest things,
and really why I'm writing this short essay, is that there are some
students who actually fall into both camps.  Here's another confession.
I've always liked these students and had a strong sympathy for them.

Now abject failure is nothing new in life.  Quite often I've had
students who have failed miserably for no other reason than they had
very little ability.    This is nothing new. What is new is that in the
UK, we now graduate a lot of students like that.  But, hey, that's
a different story and I'm not going down that route.

No I want to look at the brilliant failures.   Because brilliance amd
failure are so often mixed together and our initial reaction is it
shouldn't be.   But it happens and it happens a lot.  Why?

Well, to understand that, we have to go back before university. Let's go
back to high school and look at a brilliant failure in the making.
Those of you who have seen the film "Donnie Darko" will know exactly the
kind of student I'm talking about.  But if you haven't, don't worry,
because you'll soon recognise the kind of person I'm talking about.
Almost every high school has one every other year or so.

Generally what we're talking about here is a student of outstanding
brilliance.  Someone who is used to acing most of his assignments; of
doing things at the last minute but still doing pretty well at them.
At some level he doesn't take the whole shebang all that seriously;
because, when you get down to it, a lot of the rules at school are
pretty damned stupid.  In fact a lot of the things in our world don't
make a lot of sense, if you really look at them with a fresh mind.  

So we have two aspects to this guy; intellectual acuteness and not
taking things seriously.  The not taking things seriously goes with
finding it all pretty easy and a bit dull.  But also it goes with
realising that a lot of human activity is really pretty pointless, and
when you realise that and internalise it then you become cynical and
also a bit sad - because you yourself are caught up in this machine and
you have to play along if you want to get on.  Teenagers are really good
at spotting this kind of phony nonsense.  Its also the seed of an
illness; a melancholia that can deepen in later life into full blown
depression.

Another feature about this guy is his low threshold of boredom. He'll
pick up on a task and work frantically at it, accomplishing wonders in
a short time and then get bored and drop it before its properly
finished.  He'll do nothing but strum his guitar and lie around in bed
for several days after. That's also part of the pattern too; periods of
frenetic activity followed by periods of melancholia, withdrawal and
inactivity.   This is a bipolar personality.

Alright so far?  OK, well lets graduate this guy and see him go to
university.  What happens to him then?

Here we have two stories; a light story and a dark one.

The light story is that he's really turned on by what he chooses and he
goes on to graduate summa cum laude, vindicating his natural brilliance.

But that's not the story I want to look at.  I want to look at the dark
story.  The one where brilliance and failure get mixed together.

This is where this student begins by recognising that university, like
school, is also fairly phony in many ways. What saves university is
generally the beauty of the subject as built by great minds.  But if you
just look at the professors and don't see past their narrow obsession
with their pointless and largely unread (and unreadable) publications to
the great invisible university of the mind, you will probably conclude
its as phony as anything else.  Which it is.

But lets stick to this guy's story.

Now the big difference between school and university for the fresher is
FREEDOM.  Freedom from mom and dad, freedom to do your own thing.
Freedom in fact to screw up in a major way.   So our hero begins a new
life and finds he can do all he wants.  Get drunk, stumble in at 3.00
AM. So he goes to town and he relies on his natural brilliance to carry
him through because, hey, it worked at school.  And it does work for
a time.

But brilliance is not enough.  You need application too, because the
material is harder at university.   So pretty soon our man is getting
B+, then Bs and then Cs for his assignments.   He experiences
alternating feelings of failure cutting through his usual self
assurance.  He can still stay up to 5.00AM and hand in his assignment
before the 9.00AM deadline, but what he hands in is not so great.  Or
perhaps he doesn't get into beer, but into some mental digression from
his official studies that takes him too far away from the main syllabus.

This sort of student used to pass my way every now and then, riding on
the bottom of the class.   One of them had Bored> as his UNIX prompt. If
I spotted one I used to connect well with them.  (In fact I rescued one
and now he's a professor and miserable because he's surrounded by
phonies - but hey, what can you do?).   Generally he would come alive in
the final year project when he could do his own thing and hand in
something really really good.   Something that would show (shock,
horror) originality.  And a lot of professors wouldn't give it a fair
mark for that very reason - and because the student was known to be
scraping along the bottom.

Often this kind of student never makes it to the end.  He flunks himself
by dropping out.   He ends on a soda fountain or doing yard work, but
all the time reading and studying because a good mind is always hungry.

Now one of the things about Lisp, and I've seen it before, is that Lisp
is a real magnet for this kind of mind.   Once you understand that, and
see that it is this kind of mind that has contributed a lot to the
culture of Lisp, you begin to see why Lisp is, like many of its
proponents, a brilliant failure.  It shares the peculiar strengths and
weaknesses of the brilliant bipolar mind (BBM).

Why is this?  Well, its partly to do with vision.   The 'vision thing'
as George Bush Snr. once described it, is really one of the strengths of
the BBM.  He can see far; further than in fact his strength allows him
to travel.  He conceives of brilliant ambitious projects requiring great
resources, and he embarks on them only to run out of steam.  It's not
that he's lazy; its just that his resources are insufficient.

And this is where Lisp comes in.  Because Lisp, as a tool, is to the
mind as the lever is to the arm.  It amplifies your power and enables
you to embark on projects beyond the scope of lesser languages like C.
Writing in C is like building a mosaic out of lentils using a tweezer
and glue.   Lisp is like wielding an air gun with power and precision.
It opens out whole kingdoms shut to other programmers.

So BBMs love Lisp.  And the stunning originality of Lisp is reflective
of the creativity of the BBM; so we have a long list of ideas that
originated with Lispers - garbage collection, list handling, personal
computing, windowing and areas in which Lisp people were amongst the
earliest pioneers.  So we would think, off the cuff, that Lisp should be
well established, the premiere programming language because hey - its
great and we were the first guys to do this stuff.

But it isn't and the reasons why not are not in the language, but in the
community itself, which contains not just the strengths but also the
weaknesses of the BBM.

One of these is the inability to finish things off properly.  The phrase
'throw-away design' is absolutely made for the BBM and it comes from the
Lisp community.   Lisp allows you to just chuck things off so easily,
and it is easy to take this for granted.  I saw this 10 years ago when
looking for a GUI to my Lisp (Garnet had just gone West then).  No
problem, there were 9 different offerings.  The trouble was that none of
the 9 were properly documented and none were bug free. Basically each
person had implemented his own solution and it worked for him so that
was fine.   This is a BBM attitude; it works for me and I understand it.
It is also the product of not needing or wanting anybody else's help to
do something.

Now in contrast, the C/C++ approach is quite different.  It's so damn
hard to do anything with tweezers and glue that anything significant you
do will be a real achievement.  You want to document it.  Also you're
liable to need help in any C project of significant size; so you're
liable to be social and work with others.   You need to, just to get
somewhere.

And all that, from the point of view of an employer, is attractive. Ten
people who communicate, document things properly and work together are
preferable to one BBM hacking Lisp who can only be replaced by another
BBM (if you can find one) in the not unlikely event that he will, at
some time, go down without being rebootable.

Now the other aspect of the BBM that I remarked on is his sensitivity to
artifice.  To put it in plain American, he knows bullshit when he smells
it.   Most of us do.  However the BBM has much lower tolerance of it
than others.  He can often see the absurdity of the way things are, and
has the intelligence to see how they should be.  And he is, unlike the
rank and file, unprepared to compromise.  And this leads to many things.

The Lisp machines were a product of this kind of vision. It was, as
Gabriel once said, the Right Thing.  Except of course it wasn't.  Here
the refusal to compromise with the market, and to use the platforms that
the C bashers were using proved in the long run to be a fatal mistake.

And this brings me to the last feature of the BBM.  The flip side of all
that energy and intelligence - the sadness, melancholia and loss of self
during a down phase.    If you read many posts discussing Lisp
(including one in comp.lang.lisp called Common Lisp Sucks) you see it
writ large.   Veteran programmers of many years with obvious ability and
talent go down with a fit of the blues.  The intelligence is directed
inwards in mournful contemplation of the inadequacies of their favourite
programming language.   The problems are soluble (Qi is a proof of that
for God's sake), but when you're down everything seems insoluble.  Lisp
is doomed and we're all going to hell.

Actually one paper that exemplifies that more than any other is the
classic Lisp: Good News, Bad News, How to Win Big. If you read that
paper, you feel and see nature of the BBM.  Its unique because Gabriel
actually displays both aspects at the same time.   The positive side,
the intellectual pride and belief in Lisp is there.  But also in there
is the depressive 'but its all going to go to hell' aspect is there too.
This is contained in the message that Worse is Better.

So what's the message in all of this? Basically, that there are two
problems. The problem with the Lisp mindset and the problem with Lisp.
The problem of the Lisp mindset is the problem of the mindset
characteristic of the BBM.

And the problem with Lisp?  The answer is tailor made for the minds who
program it. It is the koan of Lisp.

The answer is that there is no problem with Lisp, because Lisp is, like
life, what you make of it.