Live data from Hacker News

Why Lisp Is Unpopular

news.ycombinator.com

1–10 of 159 posts

Why Lisp Is Unpopular

#1
A picture is worth 1K - 3 * 2^3 words:

http://www.hq.usace.army.mil/cepa/pubs/jul00/radar.jpg

That's a phased-array radar installation that (I understand) was built to detect Soviet ballistic missiles inbound over the North Pole. Google has more images.

The term "Phased Array" has interesting implications here. It means that received phase information is preserved among the many small antenna elements on each face of the structure. That only works if the paths traversed by the antenna outputs are all the same length (modulo lambda), with a margin of error around .1 * lambda, where lambda is a representative wavelength of the received signal.

This thing uses microwave signals [1], which means we can reformulate the preceding paragraph as follows: You're looking at a picture of a single circuit the size of a large office building, built to a precision of 100 microns. Now's a good time to point out that little yellow thing in the lower left corner of the image is probably some kind of earth-moving machine.

The US military built a number of these installations in Alaska and Canada during the Cold War. Let's pause here to think about all the structure-hardening and weatherproofing that must have been involved.

What does this have to do with Lisp? It's not an exaggeration to say that building and maintaining these early warning systems required the attention of at least a third of all American microwave engineers [2]. When the Cold War ended, most of them left the big contractors the DoD hired to build the radar and started doing basically the same work for cellular companies [3]. Ten or fifteen years later, mobile phones became ubiquitous.

In the case of Lisp, there was no continuity in the transition. Common Lisp, in particular, was primarily in use by a rarefied group of specialists working on room-sized computers at places like DARPA, thinking about things like AI for driving tanks across central Germany. When the funding dried up and the specialists had to move on [4], they found work writing C, Perl, or Java on microcomputers. So Lisp lost its user base and the last of its major hardware platforms (now that you couldn't buy a Lisp Machine any more) all at once.

Of course, when programmers discuss Lisp's continuing lack of popularity, regardless of their opinion of the language itself, they seem a lot more willing to blame things programmers ultimately control, like the social habits of Lisp users or the damn parentheses.

[1] I'm not a microwave guy, so some of this explanation is simplistic almost to the point of inaccuracy. In particular, I don't know what frequency bands these installations use.

This is as good a place as any to point out that I also have no special knowledge about Lisp at big organizations after the end of the Cold War. People who do are strongly encouraged to email me if I've gotten anything wrong.

[2] I don't have a citation for this number, but one of my old professors does. I'll see if I can get him to email it to me.

[3] "3G" cellular technology would be unworkable without big antenna arrays

[4] A lot of the "classic" books on Lisp and related topics were written during this period. SICP, PAIP, and On Lisp, and The Seasoned Schemer come to mind.

Re: Why Lisp Is Unpopular

#2
There are many hypotheses out there that Lisp lacks popularity for this or that flaw in the language or in the community. The problem with these hypotheses is that you can point to similar or bigger flaws in languages that have grown popular. If a language has good qualities, people will figure out ways around the problems.

My hypothesis is that Lisp is unpopular for the exact same reason some of us love it: concise code. Everybody praises concise code, but humans love looking at things that have repeated patterns. The more you compress information, the fewer repeated patterns there are to look at.

I wish PG well with Arc, but I don't think popularity will come from fixing anything that's wrong with Lisp. By my hypothesis, Lisp only becomes popular by fixing what's right with it.

Re: Why Lisp Is Unpopular

#3
I think there are various reasons why Lisp has the level of popularity that it does (I won't say it is categorically unpopular). Unfamiliar syntax, real or perceived attitudes of the community, number of primitives, the divergent nature of the language, industrial history, industrial support, editor support, academic support, perceived performance, programming trends and other things have all affected the adoption of Lisp.

I'm confident, given time, that all these concerns will be addressed and the rate of adoption will continue to increase. That's why I think now is a good time to get involved if you aren't already: be ahead of the curve.

Re: Why Lisp Is Unpopular

#4
You're looking at a picture of a single circuit the size of a large office building, built to a precision of 100 microns.

I agree that this is impressive, but remember that you get to cheat: You build the thing, measure how far off you are, and stick delay lines in the short branches until everything lines up. Admittedly, if you're off by a hundred meters the required delays would be embarrassingly large, and the architect would get teased a lot, but even then I don't think it would pose an insurmountable problem.

Meanwhile, if the essence of your argument is that Lisp was used by mainframe guys and wasn't pushed hard enough in the microcomputer world, I can't help but agree. God, if only I could travel back in time and replace all those useless Pascal books I read as a teenager with Lisp books...

Re: Why Lisp Is Unpopular

#5
OT: According to wikipedia, the PAVE PAWS phased array operates in the 420-450 MHz UHF range, with a corresponding wavelength of 66cm; if the error margin is really 0.1*lambda, the system is built to a precision of 6cm, significantly easier to meet than 0.1mm.

Also, it would be easy to compensate any error by controlling the phase of the fed signals.

See http://en.wikipedia.org/wiki/Ballistic_Missile_Early_Warning...

Re: Why Lisp Is Unpopular

#6
How to make Lisp popular (or as popular as Lisp will ever get):

1) SBCL working very well on the big three PC platforms. 2) Bindings + easy installation for popular libraries. 3) Education (pg's articles, everything on planet.lisp.org) 4) Solid debugging, perhaps with things like breakpoints.

There is much activity on all 4 problem items that I identified above, so Lisp IS getting more popular. I don't know if programming.reddit.com can be a scientific gauge of how popular Lisp is, but it seems to be mentioned increasingly often.

Of all the problems Lisp has, parens are much less than the problem that it takes a gigantic effort to use Lisp with any popular libraries, once you step outside of the way that the larger community is using it.

Re: Why Lisp Is Unpopular

#7
The biggest barrier in my opinion is what most people think is "weird" syntax or the more precisely the absence of it. People are just not used to it. Add to the that the lack of popular libraries for some modern niceties and it really adds to it being unpopular.

Re: Why Lisp Is Unpopular

#8
My hypothesis has nothing to do with Lisp itself, per-se:

People simply stopped paying attention because of the failed promises of AI - and in a nod to the parent, some of the talent base probably shifted to other technologies, and Lisp was left without an ecosystem. It's starting to build up again.

Beautiful case-in-point: I went to a developer's conference yesterday put on by one of the big software vendors that my company buys from. I was carrying a copy of PG's excellent On Lisp to read during dead times. Having that book out in the open started several conversations with people I wouldn't have met, incidentally. Each of those conversations went something like this:

He: Lisp! Who uses that anymore? Didn't that die out a long time ago?

Me: Well, it was big during the 80's because of AI, but it's in the middle of a comeback that started sometime around 2000.

He: really!? I thought it was a dead language. Who uses it?

Me: There are a few companies out there that use it. There are even commercial offerings of Lisp tools. There's Franz, Inc. which sells AllegroCL, for example. There are two or three others I can think of off the top of my head. There are some open source projects that are very active, too.

He: but it's just a scripting language, right?

Me: No, it's really a general-purpose programming language that can be used for any number of things. It's currently being used for writing web applications, among other things, but it could be used to write any kind of software, really. Whether or not it is interpreted or compiled is dependent on the implementation and how you want to use it.

Re: Why Lisp Is Unpopular

#9
post #2

There are many hypotheses out there that Lisp lacks popularity for this or that flaw in the language or in the community. The problem with these hypotheses is that you can point to similar or bigger flaws in languages that have grown popular. If a language has good qualities, people will figure out ways around the problems. My hypothesis is that Lisp is unpopular for the exact same reason some of us love it: concise…

I'll throw in my 2 cents... Up until recently, one "flaw" that Lisp had that other languages didn't was one obvious best implementation. If you want to work in Perl, Python, Java, Ruby, etc. you knew where to get them, and you know they would work similarly across platforms, so programs you wrote on your Mac would work on Windows and Linux, etc. With Lisp, different implementations did the "interesting" stuff (threads, sockets, FFI, etc.) differently, and hackers didn't want to invest time learning one implementation if everyone else decided that a different one was the best. No one wants to bet on the loser (Blu-Ray vs. HD-DVD), so they stay away until a clear winner emerges. It looks like SBCL is becoming that best implementation, and once threads work on Windows so the web frameworks will "work", that will help greatly.

Another barrier is having to learn emacs/SLIME to have a decent development environment. That is a big piece of yak shaving for the average developer. Hopefully Cusp in Eclipse or something else will help.

Re: Why Lisp Is Unpopular

#10
I like Lisp a lot, and from my own experience I think that the main reasons why people dislike Lisp are prefix notation and parentheses.

Sure, my experience is only anecdotal and not at all large. But always I've tried to introduce someone to Lisp (I'm talking of about 5 people, none of them have converted...) they seem incapable to see further than the parenthesis and the prefix notation, but specially the parentheses.

I tried to explain them the benefits of being such a regular language, how the source code is a list which makes it really easy to do meta-programming, the power of macros, the fact that using a good text editor (Emacs + SLIME) with an excellent indentation you really don't have to care about parentheses: you follow the indentation not count parentheses!. Not to speak about the prefix notation, which they seem allergic to. But all have been in vain.

Lisp is so esthetically different from the other Algol-derived languages that it, simply, does not fit their brains, which I think is really a pity. Four of them are Perl programmers, being Perl their blub. They belive and act like there is no language better than Perl, they can do everything with perl. Whey I explain macros and metaprogramming they reply that Perl can do that with eval and strings. I've tried that and is, at least, sadomasochistic!

So, after this rant (sorry), I've to restate: the main problem people have with Lisp are parenthesis and prefix notation.

PS: Some of them also worship Microsoft and argue that Windows XP is the best operating system out there far better than Mac OS X (which none of them have tried for more than 5 minutes in a row), and that Linux is only good for severs. Some times I think that they suffer from severe brain damage, but apart from that they're pretty clever. So... it's an enigma.

Post reply on HN