Feel Good Wall

When perceptual worlds collide and nobody knows how to fix it.


Hey Top,

While I was pondering the inner nature of Lisp yet again the other day, I was moved to think of you.

Like many non-SmugLispWeenies, you think (if I understand your many comments over time correctly) that the single most important defining feature of Lisp is that it's all (primarily) about lists.

I have often said "but...but...but...you don't grok Lisp, please don't think you do" -- which is not particularly instructive, even if true.

It occurs to me that what I should tell you is that, in a very real sense, lists are not the fundamental point of Lisp, especially in regard to modern Lisp(s), rather it truly is founded on lambda functions -- which in Lisp could be called "merely" unnamed functions -- but that's misleading, because lambda functions are different in several ways than functions in most widely used languages.

This came to mind because I was re-reading, yet again, LispInSmallPieces, which explains Lisp semantics by showing many, many, many approaches to defining various aspects of Lisp -- in Lisp -- and typically each different approach/feature involves yet another brilliantly quirky inventive use of lambda functions (or alternately, if you grok lambda functions well enough, each different use is all actually just a simple variation on a theme).

You have to actually drink the Kool-Aid to understand all of this stuff; the code is typically very short, but makes absolutely no sense until you've grokked a certain essence to this whole cultish subject.

So I was thinking, for the 100th time, "Lisp is brilliant, because you can do anything, unlike pretty much all other languages", and then went on to "...but it's also crazy, because some of these things are like building the Eiffel tower out of toothpicks -- and also showing that it can be done with only 30 toothpicks, but man, do you have to understand the toothpicks well to do so." :-)

And those toothpicks really are lambda functions, not lists (which actually just boil down to more lambda functions, but skip that).

I know that doesn't directly educate you about the inner nature of lambda functions, but still, I thought it was worth stressing the point: not lists. -- DougMerritt

I am afraid we have reached another FeelGoodWall. Further, different people will paint different aspects of Lisp as the key. Typical claim keys include:

In all the debates in all the different subject areas I have debated about, it is frustrating to repeatedly run into the "feel good wall". This is where somebody loves a technology/paradigm/technique ("tool" for short), but for the life of them cannot demonstrate the grand ability of the tool in any objectively or even semi-objectively measurable fashion. I bang my head against the wall trying to figure out what to do about this because it just plugs up the discussion like gum in a pipe.

"Just try it for 5 years until it clicks and then you will love it" does not scale because there are too many alleged GoldenHammers. One would have to live a long time to even try a fraction.

I don't have a solution, but wish to give the concept a name to refer to for now.

--top

However, "I'll try it for 5 years and make $50million" does scale, assuming you can actually pull it off. If you fail, then maybe your GoldenHammer wasn't so golden after all. If you succeed, you can bet that there will several other people who would also like $50million. Even if there aren't, who cares? You've got your $50million.

A lot of the recent success of Lisp, Python, and Ruby is due to precisely this effect, in the form of ViaWeb?, Google, and 37signals, respectively. -- JonathanTang

Related: IfFooIsSoGreatHowComeYouAreNotRich


Well, I was like, all relaxed, and thinking out loud, and feeling neighborly, and thought I'd share some partial thoughts with you, so I took the above shot at that...

What I am hearing back from you in response to that is, well, not nasty flames or anything, but hardly a response in kind; I am disappointed, and sorry that I took the effort, and am in general feeling considerably less good-will towards you, after your response.

Sometimes a small thing like that is all it takes to convert one more person, one way or the other. It's not like I haven't been trying, for some years, despite your large anti-fan club, and despite a general appearance that you may not be interested in life-long learning. -- Doug

I am not sure what you had in mind. I was hoping to at least trigger a discussion about what other Lisp fans fealt the most important aspect of Lisp was (perhaps like OoBestFeaturePoll), and also maybe encourage something fairly concrete to compare. I did not set out to dissapoint. I am as frustrated as anybody here by the difficulty in transferring preference reasons between Wikizens. That kind of reoccuring difficulty is a larger problem than just you and me. --top

Sure it is, in the overall scheme of things, but what's this "I was hoping to at least trigger a discussion"??? To remind you, ***I* left a note on your home page, and you responded with this page. You didn't initiate this, I did, and I am extremely disappointed with your response to my casual and friendly comments. -- Doug

Do you mean it appears I changed topics? In my mind I was trying to focus it toward areas that are more, well, measurable. I am not a verbal person and don't communicate very well verbally IMO. I like examples and scenarios to compare and communicate. No harm was meant. -- Top

I more or less apologized for not giving examples and scenarios.

Notwithstanding that, I offered you a thought -- a hand-wavey thought from your point of view, I quite understand, and acknowledged at the time, and your response is now to take a poll (LispBestFeaturePoll) on who thinks which features of Lisp are great? That is just rude. I offered you, a non-Lisper, a possible insight, and your response is to reject it out of hand and ask other people if they agree or if they think something else about Lisp is important.

Doing that both misses my point, misses my meta-point, and is really quite rude. If I tell you that the important thing about a book like Candide is to understand it as a criticism of other thoughts of the day, well, I may be right and I may be wrong, but if you have not studied Candide, Voltaire, and the era, and want to make up for it by taking a poll, that's just preposterous, and rude.

I didn't insist that you study the subject more, I merely offered you a completely free-of-charge thought on the subject. -- Doug

It is simple curiosity, not intended rudeness. Your statement raised the question in my mind, so I used wiki to ask. I guessed I hoped that you would be interested in that question also. However, it was interpreted as rudeness it now seems. Maybe compare me to the rain; rain does not rain down on you because it is rude, but simply because that is what rain does. If I purposely set out to be rude to you, there would be no mistaking it. --top

You're being disingenuous. I offered you a personal opinion about something about Lisp that I thought you should change your mind about (not about Lisp being good, but that Lambda is more important than List). You have not responded directly AT ALL to what I said to you.

You have, however, responded highly indirectly, by creating these two pages.

I am telling you, I take offense to your lack of direct response combined with your indirect responses...and note, I am not being purposefully rude to you, but just as with you said, if I do, there will be no mistaking it, and your provocation continues. What, do you want me to flame you? -- Doug

Okay, I tried to think directly about your suggestion while stuck in traffic. I do have a question: If it's the lambda's, then what about other languages that have lambda's? Is it Lisp lambda's, or lambda's in general? Lisp's syntax approach is pretty unique to Lisp, but not Lambda's. --top

Lisp's syntax has certain advantages and certain disadvantages, but that is, to my mind, a slightly different subject. Any language that 100% supports Lisp style lambda -- that is the point, regardless of syntax.

I am not familiar with Dylan, which they say is Lisp with non-Lisp syntax (IIRC it had pascal-style syntax), but if it supported full-fledged Lisp-style lambdas (which again, IIRC, it may have), then yes, that's the point, and good enough.

Does that answer your question sufficiently? -- DOug


See also: HowCanSomethingBeSuperGreatWithoutProducingExternalEvidence, GoodMetricsUseNumbers

FebruaryZeroSix


EditText of this page (last edited February 19, 2006) or FindPage with title or text search