Metafilter has a thread on Paul Graham's Java's Cover essay.
From the comments:
Smug-lisp-weenie-ism seems to be a pretty significant image problem for lisp.
Posted by jjwiseman at October 03, 2003 11:03 AMI think that the real social problem with Lisp is the closed mind of (most) of its community. It's something that I've already seen with the old amiga users. They had something good, maybe better than most other plattforms. Then something happened, wrong choices, and now amiga is dead. Instead of trying to understand why and to think about a solution where amiga could still be useful, they just made the situation worse by becoming "elite". The ibm-pc was evil, and they were the solution. Of course market has his own rules, and now noone cares about amiga anymore. Lisp is a great language. Scheme is even better (imho). And there are many, many other languages that are much better than C anyway. But C/C++/Java are the current leaders. Now we can try to integrate a tiny bit (tiny) of our better language into the "real world" or we can just say "we are the best, f**k the rest" and let lisp die. Java was only a little better than C++, it's an easier language, purely OO and with GC. And now it is a mainstream language. Can we do another tiny step? F# should be integrated into the next VisualStudio .NET. Thay's because ML is less "revolutionary" than lisp. Who knows what's going to happen next.
Posted by: kenpex on October 3, 2003 11:48 AMI'm sure this will sound all elitist, but I think it is childish to choose your language based on your dislike of some obnoxious snobs advocating it rather than on technical merit.
Posted by: johs on October 3, 2003 02:36 PMI'm not criticizing the language, but some of its community. I do like lisp.
Posted by: kenpex on October 3, 2003 02:42 PM"... the closed mind of (most) of its community." Wow, what a generalization. And, exactly the opposite of my experience. Yeah, there are closed minded people in all communities, but I don't think there are more in the Lisp community.
Posted by: e40 on October 3, 2003 03:17 PMPaul Graham does really come off like an asshole sometimes, and that particular essay is a great example of that. His attitude is that if you like languages that he doesn't, you must be quite the mediocre programmer.
From reading the lisp newsgroup, I've observed the community is very fractured. There's the Lisp guys and the Scheme guys. Even with just Lisp, there's so many varieties of Lisp, and about half the people posting on the Lisp newsgroup seem to be working on their own lisp.
Posted by: Andrew Hyatt on October 3, 2003 05:47 PM'There's the Lisp guys and the Scheme guys.'
From what I can tell, the Algol community is very fractured. There's the C guys and the C++ guys and the Java guys and the C# guys and the Objective C guys.
Posted by: Tristan on October 4, 2003 12:13 AMI don't think it's too irrational to choose a language based on one's dislikes of some obnoxious snobs advocating, as these will be the ones who write the libraries you might be using, write the introductory books and answer your questions on the language's newsgroups. If you can't cope with them, it's better to choose another language than to waste your time trying to not feel like an idiot and then choose another language.
Posted by: Andreas Fuchs on October 4, 2003 12:55 AMWhile Paul Graham (love him or hate him) is certainly a vocal and visible part of the Lisp community, I would say people such as Duane Rettig have more of an impact on what libraries you have access to in your Lisp world. Quieter people are writing your libraries, which I imagine is true in most languages.
Posted by: Bruce Nagel on October 4, 2003 05:32 AMIt's difficult NOT to become a smug lisp weenie, if you come from most other languages, Lisp just seems so much more empowering. This produces a drive to convert others in a lot of people.
To the recently converted, I would say one thing: Let people find Lisp for themselves, don't try and push it too hard. Yes, you've found it and yes, it is wonderful. But you will barrack people forever into their own greenspunning if you evangelise agressively by criticising the shortcomings (real or perceived) of their languages - something I myself have probably been guilty of on occasion.
The best Lisp evangelism is in writing cool lisp programs, and when people ask you how the &$%# you got it done so fast or at all, just say "oh, I used lisp" and move on.
Posted by: David Golden on October 4, 2003 06:39 AM> "... the closed mind of (most) of its community." Wow, what a generalization.
Yes mabye I'm generalizing too much here, but that's the feeling that I had on some lisp chat channels and by reading a few articles like the Graham's one. Maybe I'm wrong, but the "first" impression was not good.
> 'There's the Lisp guys and the Scheme guys.'
From what I can tell, the Algol community is very fractured. There's the C guys and the C++ guys and the Java guys and the C# guys and the Objective C guys.
This is much like the same. You're stretching a comparison just to say, it's not a lisp fault, it's something that you can have everywhere. True, but false. Declarative languages are less used than imperative ones, and this leads to less robust standard. Noone calls C,C++,ObjC and Java dialects of Algol, while Lisp, ML and Prolog are instead just the names of a family of languages. And even if you take a specific, standardized dialect like CL or Scheme, every compiler is much different from another, and has its own extensions (this is even worse with Prolog, for example). This is also true for C/C++ but the problem is not as bad, and the differences are subtle or are due to the host OS. And last but not least, it's also good to notice the CL/Scheme distinction, because those are two similar languages but with such a different view of how a program should be made that there could be a substatial difference between the two communities (but I know that there are also lots of programmers that use them both). The same does not apply to C/C++, usually C programmers can also code in C++ and vice versa, and they usually don't argue on what is the best way to code. They know were one is more suited than the other and use the best one to suit their needs.
>I don't think it's too irrational to choose a language based on one's dislikes of some obnoxious snobs advocating, as these will be the ones who write the libraries you might be using, write the introductory books and answer your questions on the language's newsgroups. If you can't cope with them, it's better to choose another language than to waste your time trying to not feel like an idiot and then choose another language.
Snobs are everywhere, the problem is when they are so many that they actually could ruin the product itself. That happened many times, I'm not experienced enough with lisp to say if that's the case or not. But I do think that they should be "emarginated" and that it's good to take the moderate approach.
By the way, my last post on my own blog talks about this problem too.
Posted by: kenpex on October 4, 2003 08:09 AM> This is much like the same. You're stretching a comparison just to say, it's not a lisp fault, it's something that you can have everywhere.
His point was that you are being hypocritical if you do not apply the same standard to the Algol family of languages.
Anyway, why *should* the Common Lisp and Scheme people not have differences? The languages are designed with different philosophies to achieve different goals. Of course their proponents will not agree on everything.
I suspect a lot of the negativity toward lisp is just natural human xenophobia. Lisp has significant differences from other languages, and there's the unconscious urge to make the task of understanding it disappear instead of investing the effort to do so. The disparagement of Lisp advocates is another symptom of this same instinctive laziness.
Posted by: pfdietz on October 4, 2003 09:55 AMSigh. I'm a former Amiga owner, and a Linux user, and a Lisp user, and was a GNOME early adopter, and I cycle.
Looking on the bright side, I never ran OS/2, and I'm not vegetarian.
Posted by: Daniel Barlow on October 4, 2003 09:58 AMI think I've explained why "Algol family" languages are different in this aspect with Lisp family of languages. I've said that Lisp-like languages are far less standard, that they have much more dialects, and that the differences between the various implementations are wider. Also I've explained that imho there's a different (and conflicting) view of how problems should be solved between CL and Scheme. I'm not saying that CL and Scheme ppl should not have differences (where have U read that?), I'm just replying to the ones that say that they have the same differences that you can find everywhere.
By the way I do think that all those standards are confusing and they are not good for Lisp. And I'm not alone, as I think that this problem was seen by the CL standard group too...
Last but not least, maybe you're right when you say that most of coders are lazy and don't want to learn so different approaches to programming. But that's an elitist view again. There is the *real world* where as you say the people are lazy. Now we can say that the problem is the world around us, or we can just try to change our view, and start making this great new (new?!???) revolutionary approach to programming more widespread. As I said, F# should be in the new MS.VS.NET... when are we going to have a lisp#???
Well, seeing as how writing a program in a language with first class functions is in effect creating a dialect, it'd be hard to not have them lying about.
And as far as prolog dialects go, I think there are a few in textbooks in a few pages of lisp code on my bookshelf somewhere :-)
Posted by: David Mercer on October 5, 2003 02:28 AM> By the way I do think that all those standards are confusing and they are not good for Lisp.
I beginning to realise how lispers are turning into arrogant Smug Lisp Weenies.
Posted by: Eugene Zaikonnikov on October 6, 2003 02:55 AMThe topic of Graham's article was bounded rationality. A traditional simplifying
assumption in social science is that man is rational.
This is a rash assumption, for all sorts of reasons.
One of the most important reasons is simply that life is short.
One has to get a move on, take decisions, for better
or worse and see them through.
What computer language should I learn? Perl, Ruby, Python, C++, Java, C#?
The rational approach is to study each, and then decide.
I don't have time for that. Herbert Simon coined the term
"satisficing" to describe what persons often do.
You study a language. If it is adequate you use it. If not, you move
on to studying the next one. Clearly this works better
if you are a good guesser and can start with the
best language. So how do you go about guessing. It
is an important question, and it is the question
Graham was addressing. He called his essay a study
of "hacker radar", his term for the guessing techniques
one is forced to use by the limitations of the
human life span.
Are his heuristics any good?
Number 1 rejects hype. I'm old enough to remember the late 70's.
Lisp had real cache. What is the difference between
cache and hype? I think you find out in retrospect.
Rejecting hype requires clarity about what we mean
by hype. I don't see much hope of using method 1 to good effect
Number 2 rejects aiming low. But it gets a bit muddled.
Is aiming low really bad. There is the idea that
debugging is twice as hard as coding, so you had
better write simple code, half as clever as you
could if you really tried, least you find that you
are not clever enough to debug it. At the end
Graham applies the "eat your own dogfood test". Well he
alludes to it. He doesn't actually say whether
Gosling programs in Java or not.
And so on. There is an important discussion to be
had about how to make the best use of ones study time
by making inspired guesses about what to study.
Sadly, no-one is contributing to it.