Skip to content

Instantly share code, notes, and snippets.

@yevhenorlov
Last active December 6, 2022 10:45
Show Gist options
  • Save yevhenorlov/b2dcdfa726ebceb4e66eb7d7167b0221 to your computer and use it in GitHub Desktop.
Save yevhenorlov/b2dcdfa726ebceb4e66eb7d7167b0221 to your computer and use it in GitHub Desktop.
Here's Mark Tarver's essay "The Bipolar Lisp Programmer", backed up from
https://web.archive.org/web/20080709051856/http://www.lambdassociates.org/blog/bipolar.htm
---
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.
Mark
Copyright (c) 2007, Mark Tarver [email protected]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment