I think the article describes ADHD rather than bipolar disorder. Selective attention, difficulty finishing what was started, poor fit for the current educational paradigms... Sounds like ADHD to me. There's nothing in the article that can be characterized as mania.
It's still one of my favorite posts though. Really resonated with me the first time I read it and I think it's just as relevant today.
Or just exceptional brilliance. At the extreme end of IQ or similar scales, aspects of one's very existence become eerily similar to ADHD symptoms - except the mind isn't understimulated because of chemical imbalance; it's understimulated because the world is perceived as unbearably mundane. Similarly, social deficits may be identified as Asperger syndrome when in reality it's may be a lack of common topics/culture and a disregard for the monkeylike social dance. It takes a real expert to properly diagnose such person. See [1], [2].
I agree and personally know two psychiatrists who share these views.
They interpret ADHD as the sign of an intelligent person whose talents should be cultivated separately. The mass education paradigm doesn't work for them. There's something highly paradoxical about ADHD: it's an attention-deficit disorder and yet many display hyperattention once they find something they do like.
"Similarly, social deficits may be identified as Asperger syndrome when in reality it's may be a lack of common topics/culture and a disregard for the monkeylike social dance"
I agree with this. Any time I've said it in person, people jump all over me. It's heresy
Certainly I don't think this is describing clinical bipolar disorder. It's recognizable as pop-culture bipolarity, much like pop-culture OCD is more likely germaphobia or anxiety than clinical OCD. The idea is recognizable, but it's inconvenient that there's so much gap between cultural and medical 'diagnoses'.
But... yes, ADHD, or something similar enough that it's often diagnosed as such. I've known a lot of these people, I've been one of these people, and any time they brush up against psychiatry the usual result is ADD/ADHD. Without speaking to the question of medication, it's something I see a lot and something I think we badly fail to handle in existing public education.
It's a confusing term, but I don't think he means Bipolar in the clinical sense. The two poles here are the brilliance/failure dichotomy that he goes on to explain.
They can both sometimes have those problems. Both can lead to the feeling of overstimulation which can lead to the same focus issues. For example, "So much is going on I can't pick which to pay attention to".
Mania manifests with signs that don't match those of ADHD. Among the criteria¹ that characterize a manic episode, only one is directly related to ADHD:
>abnormally and persistently elevated, expansive, or irritable mood
>increased self-esteem or grandiosity
>decreased need for sleep
>more talkative than usual or pressure to keep talking
>flight of ideas or subjective experience that thoughts are racing
>distractibility
>increase in goal-directed activity or psychomotor agitation
>excessive involvement in pleasurable activities that have a high potential for painful consequences
ADHD and manic episode, in more concrete terms:
>disorganized, forgets about appointments, loses stuff, puts off chores and homework, can't sit still for too long, suddenly gets up when not supposed to, finishes other people's sentences, doesn't listen when talked to, can't wait for their turn, interrupts busy people, can't pay attention at all in boring classes, mind thinks about anything but the boring task at hand, makes careless mistakes during exams, suddenly finds something interesting to do and works on it all day, finishes the awesome parts of projects then drops them when only the boring stuff remains, highly distracted by noise and background activity
>grandiose delusions concerning own intelligence, potential and abilities, talks about them at length, becomes highly irritated if contested, thoughts race and feels like brain can't process them, thinks he can do anything (like flying) and engages in high risk behavior as result, sleeps 2 hours then goes jogging at 3 AM unable to understand why everybody else is so slow, relentlessly pursues goals and sexual interests to the point of indiscretion, displays exceptionally poor judgement
Mental afflictions rarely have a clear A or B diagnosis. Comorbidity is common, in that you have a bit of A, some B and flavors of C.
One explanation is that it's an underlying physiological issue: subtle imbalances in brain chemistry with an array of manifestations. We try to figure out what the issues are based on how the software fails to run when in fact there's a HW issue.
Look up comorbity of either of those and depression or sleep disorders etc. Sometimes it's a clear cut this or that but simply because it helps doctors diagnose by pattern matching and we can't actually diagnose neurology properly. We don't have a probe we can use to measure chemical and electrical brain properties, and we don't know how to interpret them even when we can (there are things like fMRI but they say little). So instead we develop a taxonomy of afflictions which tries to be (and doctors act as if it is) made up of distinct entries. If you look into the DSM V (or IV?) manual of disorders you'll see that comorbidities are listed and data shows they're quite common. In my experience most doctors try to slap a diagnosis and treat it without thinking about the non-linear interactions between these issues, caused by the underlying hardware.
They are not the same thing, of course. I was just saying they can both have the problem of focusing and finishing tasks in class as you mentioned. And they can also both have bouts of productivity as the article mentions. I think the article could easily be talking about either, or any other host of things that make learning harder.
I know quite a few people with one or the other. The feeling of being overstimulated is one of the ones that ADHD and bipolar disorder often both share. Someone who is manic can feel like their thoughts are racing, like there's so much they should be doing! So it's hard to focus on what the speaker is saying.
Someone with ADHD can feel like there's so much other more interesting stuff all around them constantly, and their thoughts are wandering over to that song they heard earlier. So it's hard to focus on what the speaker is saying.
Different lines of thought, but the result of "not listening" is the same.
But I don't think this article is trying to say "this type of person is great but society keeps them down, man". Or at least, that's not how I read it. The author explicitly says that the failure comes from lack of application.
I find it interesting that Clojure (and LISPs in general) have enjoyed an upsurge of attention since this 20th anniversary post. Maybe we're in the mania phase?
As an anecdote, I've now been on both language spectrums. In large C++ projects I can absolutely attest to the "Needs many people" claim. Now that I've worked in Clojure on projects of equal importance, it's mind-bending how much I can accomplish alone.
Many of modern IDE features go back to Lisp and Smalltalk workstations.
Yet they still don't offer all their capabilities.
Had those environments succeed in the market, the whole development experience workflow would be much better.
Think of Bret Viktor style presentations.
Sadly due to their prices, many know Common Lisp via the open source command line compilers, instead of environments that trace back to those workstations like Franz Common Lisp.
> it's mind-bending how much I can accomplish alone
which proves that Lisp and the "bipolar Lisp programmer" are not necessarily related together. I think BBM's prefer Lisp because it is really convenient to develop without having to be dependent on others.
C++ may be considered a "social" language, however I discovered that it is not the language itself which encourages social development but some coders make so silly mistakes that they actually need the help of others to fix them. For instance, some devs open files without closing them, etc. I wonder if those people would actually write cleaner code with Lisp because such silly mistakes are not so easy in Lisp due to is structured programming (with-open-file ...). Also buffer overflows and the like are much harder to accomplish in Lisp than in C++.
Some devs, in particular Edi Weitz and the quicklisp authors are evidence that Lisp preference and social interest are not mutually exclusive.
While the "BBM" tends to work alone and be frustrated at artiface at every corner, when you get a few or more working together, some really great things can come together. I've experienced that firsthand.
Wow, this felt like an eerily accurate cold reading!
I'm currently waiting for some Racket tests to finish, and this morning I tutored a C/C++ programming lab. The other lab tutor is a C++ hacker, and was saying how the course this year is much better than when he took it, since they had to do it in Lisp ;)
I think finishing projects is a learnable skill, not a fixed personality trait. It can be learned in quite a short time by repeatedly doing one-day projects and making them as finished as you can.
One way to learn such discipline is "learning by teaching". If you learn something, and if you want to learn it really well, then learn it so that you can teach it to others.
>> 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.
Oh give it a rest already. You're talking about someone who can't finish
anything, and won't even bother to document his half-arsed, half-baked code,
as a "brilliant" mind? And on the basis of, what? That he (it's always a he,
in the article) used to get good grades at school. Not even university, mind-
the brilliance lasted until high school. But, you know, it's all because that
brilliant mind was such a great non-conformist who could see through all us
phonies.
The only thing missing is a magical ring and a birthmark that, once deciphered
using the ring, reads "Only You Can Save the World™". I won't bother to say
where the birthmark is and how the ring fits it.
As if we didn't have enough trouble already with rockstars and ninjas and people thinking they're artists because they wrote their first for-loop...
Yeah, clearly the author chose to label this personality type with a mental disorder because they think it's awesome. Who wouldn't want to be bipolar? The bipolar ninja, that's got a certain ring to it doesn't it?
Did you read to the end? The point, stated explicitly is that the BBM mindset is problematic:
> 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.
I'm not sure what your cutoff for 'brilliant' is, but being able to ace high school without working probably makes you 1 in 50. From the point of view of a teacher calling the top student in a grade 'brilliant' is not a huge stretch. Of course, if you go to a demanding program in a good university, this level of 'brilliance' is commonplace.
It seems to me the author sees some beauty in this type of mind, but it doesn't mean they think you should try to be that way. I can understand that; because I see beauty in fragility too; for whatever reason, I have a soft spot for people with anxiety problems, and I try to reach out and help them. I think there is something brilliant about (some of) them, but it doesn't mean I think they are better than others. Having anxiety makes life harder, as does having the personality described in this article.
I'm not bipolar, but I have a few friends that are and being bipolar _fucking sucks_. No-one who glamourises mental illness has real experience with mental illness.
You're confusing someone too talented for their own good with a self-entitled asshole. Being a bipolar programmer is not glamorous, and certainly not a point of pride; if anything, it's extremely hard and frustrating - not just code-wise, but life-wise.
>You're talking about someone who can't finish anything, and won't even bother to document his half-arsed, half-baked code, as a "brilliant" mind? And on the basis of, what? That he (it's always a he, in the article) used to get good grades at school.
People who, since early age, could obtain success in school without putting in any effort might not develop the will to study and the discipline required to maintain a healthy study habit. They might start expecting to be able to simply grok subjects as they are presented.
When they reach higher education, they discover the material is harder to understand and struggle since they haven't developed the necessary fortitude to cope. When they start complex projects, they don't persevere to the end since the boring 20% that remains to be done requires 80% of the total work.
I don't think they're acting like rockstars and ninjas. Maybe they're just doing as experience has taught them only to find out later it's not enough and that real effort is required.
I'm an amateur LISP hacker and not an expert, and I hope this thread doesn't turn into a flame war, but I can say that LISP is excellent for symbolic computations (a la lambda calculus, which Turing proved was equivalent to a Turing Machine) [1].
If you're more familiar with C languages, I like to think of LISP as the C of symbolic languages. It has practically no syntax, and LISP (as it exists today) has the neat feature that it's data structures are the same as its programs. Writing LISP code that modifies and generates other LISP code is relatively simple compared to doing the same in a syntax-rich language.
LISP does all of this at its lowest level, just like how C manipulates the fundamental elements of a CPU (pointers, contiguous memory blocks, basic arithmetic / logic operations, etc). The way CPU's are designed revolves around the Von Neumann Architecture [2], and C exploits this design very well. Unfortunately, LISP doesn't quite match this architecture, so it has traditionally performed poorly compared to C. But CPU's could certainly be designed to operate around a LISP-like model[3], so the Von Neumann paradigm isn't the only way.
> Unfortunately, LISP doesn't quite match [the Von Neumann] architecture, so it has traditionally performed poorly compared to C.
Exactly. It has traditionally performed poorly compared to C, but this hasn't been the case for a lot of time. There's a number of misconceptions about what is and what is not a lisp.
First of all, a lisp doesn't have to be interpreted or run in a virtual machine. While this is true for a lot of lisps, Common Lisp performs what you could call just-in-time compilation: you can even inspect the compiled code of a function by calling the `disassemble' macro on it, and optimize it based on the disassembly.
A lisp doesn't have to be dynamically typed. There are many examples of statically typed lisps (Shen, Dylan, Typed Racket, Lux), and in other dynamically typed lisps such as Common Lisp you can add type annotations as needed to optimize functions.
A lisp doesn't have to be garbage collected. It certainly is more convenient to have GC when you have such a dynamic language or want to program in a functional style; however, this is not required. Carp and GOAL[0] do not use garbage collection, and in Common Lisp you can generally give hints to the garbage collector to to make it run where you need it to.
A lisp doesn't have to be functional! While lisps usually advocate a functional style to varying degrees (mutation in Scheme is usually marked with a ! in the name of the function (set!) but normally discouraged, Clojure is immutable by default IIRC), but very few are purely functional (only Lux comes to mind) and most are in fact very procedural (Common Lisp).
Finally, Common Lisp has been designed to also be used as a systems language, and thus benefits from many optimizations targeting the Von Neumann architecture that can make it just as fast, if not faster, than C.
This is a good post detailing some of the optimizations that you can perform in Common Lisp:
To answer 0wl3x's question, lisps can be used for just about anything; it's just a family of homoiconic languages that generally make heavy use of macros as fundamental abstractions.
All of them, it's a family of general-purpose programming languages :).
From older uses, you have Lisp in Gimp, Audacity, several AAA video games by Naughty Dog, in AutoCAD and few other recognizable places. Reddit was originally written in Common Lisp, later rewritten to Python. More recently, Clojure (a Lisp for JVM and CLR) is gaining popularity in the Java world, and a lot of startups are using it.
Java dev here, just to add that coding in clojure is bringing joy back to my daily working life. I've introduced it into a couple of projects, the simplicity and flexibility are an amazing productivity boost.
Some of that comes from clojure specifically, but the lisp syntax and macros are a big part of it.
I'm really, really excited by that, BTW. Gonna wait a few months before I try to use it for real, but it'll be fun to have a new Common Lisp environment.
There are companies selling Common Lisp interpreters and IDEs. So certainly there are lots of users out there.
Many major Lisps (CL, Clojure, Scheme, Racket) are general purpose languages, and in common they excell at metaprogramming, interactive programming and control flow/debugging (see CL restarts).
It's an interpreted one in the sense that one can continually interact with it during the life time of a program. Many of the popular interpreted languages nowadays do some compilation somewhere (Python, Perl, etc).
Run guixSD with stumpwm and emacs. Guix (the package manager) is in guile lisp, Shepherd (the init system) is in guile as well iirc, stumpwm (window manager) is common lisp and emacs is elisp.
Much of ITA's matrix software, which controlled airline ticket pricing, was written in Common Lisp.
I don't know if that's still the case since Google bought it, but I imagine it would be pretty difficult to port a codebase that large and complex to a different language.
When C++ and Java (the current industry standards) have adopted the last feature of Lisp then the world will realize that it actually wanted Lisp after all :-)
Lisps != lisp programs. Lisp lets programmers treat their code as data to be edited at runtime. Which is a different model than say Java.
The advantage is individual programmers can be more productive, but it becomes really hard to share code as every program evolves into it's own language.
Existential proof by contraposition: I would attempt to disprove you, but I don't wish to sit up from the couch or put down my guitar. Therefore, you are correct (about me at least).
It's still one of my favorite posts though. Really resonated with me the first time I read it and I think it's just as relevant today.