Ask HN: Question for Lisp Hackers

4 points by sam191 ↗ HN
I'm having a hard time convincing my buddies at school (or anyone for that matter) to try out Lisp. No one seems to care when I talk about code as data or macros. I am a fairly inexperienced programmer, so when they answer with "so what?" I can't really come up with anything.

Then I got to thinking.. What is supposed to motivate new programmers to try out and use Lisp when today we have dynamic languages such as Python and Ruby?

Personally, I got into it because I am hungry for knowledge and I've heard that some of the best CS literature out there uses it. But what about others? Is there a clear advantage to using Lisp that is not apparent to non-Lispers?

6 comments

[ 4.5 ms ] story [ 25.3 ms ] thread
See "The Blub Paradox" in http://www.paulgraham.com/avg.html on why it's hard to get this across.

The "clear advantage" that Lisp still has is the best type of homoiconicity (http://en.wikipedia.org/wiki/Homoiconicity); see items 8 and 9 in http://www.paulgraham.com/diff.html.

I'm not sure why this is hard to get across; my first introduction to Lisp was a "Learn Lisp in 15 Minutes" talk/mini-seminar/whatever and it was immediately obvious to me.

Yes, I thought about it as I was writing the post. But what I'm interested in finding out is how (and if) it is any different today (2010) than it was when the essay was written. In other words, has anything changed that would make another language a close alternative to Lisp? Or is Lisp still at the top of the continuum ?
The idea of the language continuum was probably made up for rhetorical reasons. Its not actually a strait line, with machine language at one end, and lisp at the other, its more like a tree, or a graph. Lisp happens to be a good language in a lot of cases, but not in all.
Well, you might want to look at other declarative language paradigms (which you can of course be neatly programed in Lisp) such logic programming (e.g. Prolog) and defining functions through pattern matching (e.g. Haskell, Qi).

There's some serious power there and in the latter case it's general purpose.

The best i can come up with is to write something cool in lisp and show it to them. And by "cool" i don't mean a lame example snippet showing off closures, or an implementation of an "unless" macro, i mean a real app. Not too big(because it will take you longer to write, and also it will be harder to explain all the details to your friends while showing them your code), but not too short(its easy for languages like python or ruby to have shorter versions of very small lisp programs, so you might fail to impress if your app is too trivial).

If you just want to "geek out" on them and spit a lot of hype about lisp, that might not be a good idea. Its good to educate yourself about lisp and other languages, and be ready to answer questions, and explain your choice, but IMHO its better to show lisps power with real code.

I say quit trying to convince them to get into Lisp. Lisp does not maintain rockstar status like Python or Ruby nor does it have the big daddy status like Java or C++, although it is older and (in some cases) better than all of them combined.

You yourself stated that you got into Lisp as you knew that some of the best literature uses it as a medium and you were hungry for knowledge. This may not be so for your buddies.