I am moving this blog to kazimirmajorinc.com.
In the meantime, some posts may be unavailable.

Why You Do Not Use Lisp? The Results of The Poll.

78


Why You Do Not Use Lisp?
The Results of The Poll.


Kazimir Majorinc
kazimir at chem pmf hr


0. Introduction


During early October 2009, I conducted the poll with question "Why you do not use Lisp?" on this blog. The poll was announced on related Usenet newsgroups comp.lang.lisp, comp.lang.programming, comp.lang.functional, and also on popular social sites Reddit and Digg.

Thirteen reasons were offered. It was specified that even people who use Lisp part of the time can answer why they do not use it in other part of the time. Lisp in this context means all Lisp dialects; and it was also specified. Multiple answers were allowed.

1. Results


I use Lisp, at least sometimes.49 (44%)
It has not enough support for modern programming practice (libraries, threads and similar.)42 (37%)
Its syntax repulses me. 26 (23%)
It is socially inadequate (small, not very alive community.)23 (20%)
It doesn't have any technical advantage I might want.20 (18%)
Its IDE is not good enough.18 (16%)
I'd like to use Lisp, but my superiors or colleagues do not want that.15 (13%)
It has not enough support for higher level programming (laziness, logic programming...)15 (13%)
It is socially inadequate (arrogant, unhelping community.)14 (12%)
It is too slow or bloated.12 (10%)
It has attractive technical advantages, but these are hard to learn, use and not worth effort.11 (9%)
It is OK, but only in some commercial version - and I want free or much cheaper one.10 (9%)
It is so marginal that I never considered it.9 (8%)


2. Comments


Presented on this way, it is not easy to recognize the message of the poll. All answers are expected, but what their relative importance means? However, I believe we can filter out important information, if we take into account two things: first, voters have much higher than average interest in Lisp and functional or metaprogramming than usually. Those who do not care for Lisp didn't care to vote on this poll as well. About 13% of voters would like to use Lisp, but they cannot because other their colleagues and bosses do not allow it. This is surprisingly low number of people - whatever your favourite language, the chance that your boss will prefer something else is large. If anything can be concluded it is that majority of Lispers somehow managed to group together or work on their own.

Lot of voters (37%) miss some libraries, or support for some modern feature. However, it doesn't say us much: lack of the libraries is universal phenomenon. I believe many people would say they do not use some mainstream language, say, Python because they've found that Ruby, Java or Perl have some specific library supported better. Second, this reason is somehow circular - less libraries means less users etc. Taking it into account, even if Lisp community wrote libraries as no one did, the result wouldn't be much better. It would be much better regarding libraries, but not much regarding programmers. Many of these who complain about lack of libraries probably already use Lisp part of the time.

The second reason is much stronger: 23% of voters do not like Lisp syntax. I incline to think that very few people who do not like Lisp syntax use Lisp on the first place. So, almost the half of the voters who do not use Lisp (56%) - on this poll - do that because of the syntax. If we assume that interest of the voters for Lisp is above average, we can safely say that Lisp syntax is the most important reason for majority of people who do not use Lisp.

One surprise, for me, is popularity of the answers "Lisp doesn't have any technical advantage I may want." (18%) "it has not enough support for higher level programming" (and it includes static typing) (13%) and "It has attractive technical advantages, but these are hard to learn, use and not worth effort" (9%) we have another revealing information - Lisp community didn't succeeded to develop or demonstrate technical advantages of Lisp. Functional languages programmers certainly understand these advantages, but they still think these are not that significant.

Good news is that Lisp got rid of its image as bloated and slow. Only 10% of voters complained about that. For, say, Modula-2, even that would be too much, but for Lisp family, which is certainly not designed to be among the leanest possible languages, the result is quite good.

Social inadequacy, i.e. small, not very alive community - rates surprisingly high (20%). I had no clue that people like to communicate that much. One might think that large community means lot of libraries. It does - but it still doesn't mean that voter will get the library he wants. So, it is, I believe, more of a human instinct for joining large, progressing, vibrant, active community, perhaps related to survival. Well, good information for all Lisp programmers and especially my Newlisp fellows; communication matters. On a related matter, significant number of voters (12%) believe that Lisp users are arrogant and unhelpful community.

Some 16% of voters missed good IDE. Well, two commercial Common Lisps have good IDE, and have free personal versions. PLT Scheme has nice IDE as well. Newlisp has very simple IDE. Personally I use Scite, which is text editor that can cooperate with command line tools easily, and it is good enough for me. About 9% of voters miss something in free versions, and it can be easily that it is again IDE.

Another poll that might interest you:

 Opinions on Eval in Lisp, Python and Ruby. The Results of The Poll. 



---

11 comments:

  1. did voters have to pick one answer or could they give various weights adding up to 100 pts?

    ReplyDelete
  2. The voters could pick as many answer as they want of listed 13. There was no weighting. Total number of answers is 264, that means voters chosen 2.4 answers on average.

    ReplyDelete
  3. Jacques Mattheij21 October 2009 at 18:15

    Hey Kazimir,

    Thank you for an excellent post, some of the results were quite different than what I expected and that's why polls like this are interesting (after all, if the result is what you expected you learned, but not as much).

    best regards,

    Jacques

    ReplyDelete
  4. I would like to nuance your view of community and in paricular the "It has attractive technical advantages, but these are hard to learn..." answer. The Lisp community has tended to self-select towards formally eductated programmers who have, by the time they become lisp enthusiasts, already written their own lisp interpreter, etc. I spent my time in college studying physics and learning C. I now program in Ruby. I know that there are some amazing things one can do with lisp, but no one has ever presented me with a good tutorial on how to do them. There are lots of good resources on how lisp works, but this is like learning the rules of Chess, but never learning any stratagity. One ends up just pushing pieces randomly and loosing a lot. Once I learn the syntac, then what?

    Rather then more of "How lisp works" I would like to see more "Using lisp to do really cool things"

    ReplyDelete
  5. To my is simple, the mayor part of programmers are autodidacts who learned in books like Java for dummies.
    Other important part with high education (BS. MS. ..) learn in courses based on structured programing inherited from numerical methods with fortran or pascal, but using newer languages like java.
    Lisp is mainly learned by computer scientist, not always as a first language. One program in a language where one feels comfortable and productive.
    Just very few learn to be productive with languages like lisp, scheme, haskell, ml, prolog, curry, etc.
    That requires better education, more theoretical computer science oriented. A very small subset of programmers.

    ReplyDelete
  6. I think LISP suffers from the same illness as "pure" functional languages suffers - for the practical reasons they are MOST useful in scientific-related problem area - area which is mostly un-populated by the so called "mainstream" (industry) developers [C/C++,C#,JAVA,etc.]. There may be some data-centric uses with LISP/ Ocaml/etc. in the world of auto-trading software systems, but again in mission critical auto-trade tasks, C/C++ will be chosen because of speed issues (sometimes even linux kernel may be modified for lowering system latency). That is to say LISP/ML/other FP are cool languages, but in essence only for prototyping of some problems where BIG amount of fast prototyping is needed. And this is not the case of what 99,99% of industry developers day job consists. Maybe that is the reason why LISP didn't departure from the academics "airport"... Good luck.

    ReplyDelete
  7. "Social inadequacy, i.e. small, not very alive community - rates surprisingly high (20%). I had no clue that people like to communicate that much."

    Is that a joke? The sole reason of civilization is communicating.

    Even survival is secondary. People with ample food but isolated, more likely to end up killing themselves.

    But this is not exactly it in this case (see below):

    "One might think that large community means lot of libraries. It does - but it still doesn't mean that voter will get the library he wants. So, it is, I believe, more of a human instinct for joining large, progressing, vibrant, active community, perhaps related to survival."

    Isn't it obvious what it means?

    Lot's of libraries.
    MORE likely to get the library I want.
    Lot's of JOBS.
    Lot's of BOOKS and material on the language.
    Lot's of FORUMS where I can find questions to my problems.
    Lot's of TOOLING for the language.
    Lot's of commercial support.

    ...

    ReplyDelete
  8. Plus:

    More PROGRESS in the language and compiler development.

    ReplyDelete
  9. I used Lisp quite a bit in school (UCI Lisp in the late 1970's) - a definite gain. At the time, Lisp was too fat for a lot of domains. Later, Lisp was either unfamiliar, or freaked out my coworkers. A programming language is not just for communicating with a computer, but also with coworkers. If I wrote code in Lisp, my coworkers would be entirely lost - not good.

    Lisp is not good to use with (most) coworkers.

    .... perhaps the above item should be on your survey. :-)

    ReplyDelete
  10. You're right, Preston. It is especially true for people who do not program full time, for example, scientists and engineers.

    ReplyDelete
  11. One thing I don't like about Lisp, especially Common Lisp, is that the language is not really evolving. Getting the Ansi process done wore out some of the best minds behind the language or something. And there is a lot of kruft laying about that is obsolete and a lot of simple things that are just not covered. But good luck getting anyone to seriously consider revving the spec. Part of that is for Lispers rolling your own way to bypass the ugly parts is pretty easy. But then you see how long a nice book like Practical Common Lisp fooled around just to handle file system directories without being bogged down in concerns that are part of Ansi Common Lisp that are no longer particularly relevant.

    ReplyDelete