Hacker News new | past | comments | ask | show | jobs | submit login
I hate Lisp (funcall.blogspot.com)
96 points by divia on March 3, 2009 | hide | past | favorite | 62 comments



This is exactly what I've been complaining about lately. Hacker News seems to have been mobbed with people who have zero sense of humor and no ability to recognize satire. Hackers like to laugh. They like to laugh at themselves most of all.

I've noticed this trend for the past couple of months...comments and articles that are clearly intended humorously being voted down as trolls, or responded to as trolls, or both. I know we're supposed to be politely nudging these new users onto the path of righteousness and into becoming productive members of the HN community...but how does one teach someone to have a sense humor? I really don't want to be one of those Eternal September types, but hackers like to laugh.


Hacker News seems to have been mobbed with people who have zero sense of humor and no ability to recognize satire.

In my tenure as a hacker I've found that the subset of hackers who don't get satire and seem to have no sense of humor is at least as large as the subset that does. For every cool, funny hacker guy you meet, there's at least one weird, humorless semi-autistic guy waiting to make the next teambuilding outing more awkward.


Hey, I just told Jenny she would look way hotter if we were playing Lazer Tag in tight Star Trek uniforms instead of our street clothes. That's a compliment, right? I thought I was supposed to make our new team member feel welcome.


You talk to females?


The subsets can sometimes be overlapping, depending on how comfortable the people in question feel in the group.


Did you notice that everyone who commented but didn't get it has been here for at least 200 days?

Also, I wouldn't call this satire, since I get the feeling it's an accurate description of how the author felt when he was first introduced to Lisp. And since it's missing the "Eureka!" moment that I assume is coming in part two, I can't fault people for not spotting that.

Regarding attempts at humor, I think most of that becomes noise. Most people aren't funny, but are convinced otherwise. Half of most Slashdot threads are posters trying to be funny. I think attempts at humor don't scale well.


Did you notice that everyone who commented but didn't get it has been here for at least 200 days?

I didn't, actually. I don't look at usernames, and I definitely don't click through to see how long they've been around.

I guess it's always been this way and I just like to complain. (This sentence is sincere.)


Everytime I catch myself thinking "there's a newbie who doesn't know HN etiquette," I check to see how long they've been registered. More than half the time, to my surprise, they've been here for at least six months, and sometimes longer than I have.


This is how it works when groups grow. In a group of 5 close friends it's not hard to know when someone is joking. You all know each other's style. As the group grows the safest thing is to just not joke around lest you risk someone misinterpret your joke.


I've noticed this trend for the past couple of months...comments and articles that are clearly intended humorously being voted down as trolls, or responded to as trolls, or both.

Well, see, here's the problem. 99% of articles written like this are not satire. So you get conditioned to jump down people's throats when you read something like this.

(I am not sure why the "Someone is WRONG on the Internet" effect is so strong, however. If someone really does think like this, we should just ignore them and hope they go away.)


Hackers like to laugh, but, in this case, the joke is not very funny ;-)


I agree. But...um...it's obviously intended to be funny. So, the problem is that folks are arguing, vehemently, against an article that is intended as satire. It's like arguing with an article in the Onion. The Onion isn't always funny, but it's pointless to argue with it.


I recognized it as satire by the time I got to the words "I hate Lisp". Really, a variation on an old theme.


Come on now, everyone knows that the One True Way(tm) to generate a humorous tech title, satire or otherwise, is with code similar to the following perl code:

$topic.(" considered harmful" x ((int rand 5)+1))


We like to laugh, and we would have laughed if the joke was original.

Laughing to the same joke over and over is retarded. We have seen this same (or variation of this same) joke many times before. Its getting old, tired and uninspiring.


I didn't mean to imply that this article was funny. Merely that it's pointless to argue with blatant satire.


I'm pretty sure the title is tongue in cheek, and would be more accurately rendered as "I hated lisp when I first had to learn it", considering e.g. the name of the blog, and posts like these with considerable lispy content.

http://funcall.blogspot.com/2009/01/day-4-part-1.html

I hate explaining a joke as much as anyone but it seems that it's gone over some heads.


Interestingly, almost everyone posting to the Reddit thread got that it was a joke (http://www.reddit.com/r/programming/comments/81s36/i_hate_li...) but most people posting to HN took it seriously.


Perhaps the HN users who realized it was a fun tongue-in-cheek parable followed the rules by silently voting it up, instead of filling up the response page with posts that say, in so many words, "HAHAHA L0LZ".

What is there to do with this besides chuckle and move on? I didn't come up with anything. I suppose I could destroy its life by publicly dissecting it. But, in the spirit of the original author, I would prefer to leave the interpretation of the story as an exercise for the student.


I think Lispers like to pretend they are soooooooo smart and so baffled by the stupidity of (cough) "normal" people that they don't dare assume any lower bound on human intelligence.

"You eat poop? Really? Ummm. Gosh. Welllllll, that's understandable. I... um... used to eat poop too! Before I learned about food. But if you give me a chance I think I can convince you of the merits of food. Let me tell you about my Road to Food!"

(Yeah, I love Lisp and like HN; I just can't resist poking some fun.)


Perhaps real hacker's spend less time here [ducks].


HN works flawlessly in w3 under emacs.


Maybe for more people on HN, Lisp is part of their identity, so they get defensive.


I haven't noticed this. Most people here seem to be PHP "programmers", which I find hilarious. There is also a large Ruby contingent (whenever someone links their open source project, it's always Ruby.)


Why the quotes around "programmers"? I think Facebook is mostly PHP (or at least was initially?) and I am definitely not going to claim no one working at Facebook is a programmer.

I understand that PHP is an atrocious language (although I haven't tried it myself). But if someone uses it to create a product that people want and satisfies a need, more power to them, right?


I'm just saying that the demographic here is more people that think they can get rich off some PHP app than hard-core Lisp hackers. I am not saying that there are no PHP programmers, merely that the PHP-lovers here don't do much programming.

I am being unfair to PHP, though... Java sucks too.


You could have conveyed the same salient information without the elitist subtext.


Probably, but I don't think I should try to hide my biases and personal opinions on social news sites.


To me, there's a difference between having a bias or giving a personal opinion and intentionally insulting a group of people. But to you I guess there isn't.

If you met someone face to face who happened to be a PHP programmer, would you let them know that ostensibly based solely on the language that they happen to be using at the time, you don't consider them a real programmer?

I'm just saying man, it's a slippery slope and one that I actively try to avoid these days.


If you met someone face to face who happened to be a PHP programmer, would you let them know that ostensibly based solely on the language that they happen to be using at the time, you don't consider them a real programmer?

Sure, why not.


Well, possibly because that's a textbook definition of bigotry right there, and I don't feel that bigotry is something we generally need more of. Even if it is - as I suspect in your case - something of an act.

Happening across some of your other posts, you seem to be a person who likes to make sweeping generalisations in the hope of offending someone. I suspect that you're well aware of what you're doing and are doing it intentionally. So I'll wish you good luck with that and be on my way.


Without Lisp, I am nothing :)


Why would someone lookup a value in a property list when you could write a simple routine in Macro-11 that would find the value in a table?

Why indeed! I'm glad Lisp is finally dead so that we can all go back to writing assembler code optimised for the cycle allocations of a specific cpu. If only we could get back all the time wasted writing all that silly code with all those silly parentheses!


Note to people writing a lengthy, angry reply: this article, and this comment, are both satire.

Check the other posts on the blog. It's a lisp blog.


I thought 'funcall.blogspot.org' might have given it away... ;p


I know it's a joke article, but I still find it pointless and without substance. What can anyone learn from it?


I thought this post was information-dense to the point of being poetic.

(1) I wasn't around in the early 80's so I appreciate insight into what hacking was like back then.

(2) It's interesting how something as great as hacking really could be made ridiculous by those Principles that he cited, and that self-important educators did those kind of things, and I wonder if that happens a lot today.

(3) It's also true that hackers like getting close to the metal and having control over their machine, to the point of making disk actuators spin or indicator lights blink, etc. Surely it is right to lament the seldomness with which such things concern us today?

(4) I thought it was funny that ugly, all-caps names like MEMQ and ASSQ, were NOT the things that he complained about, since as an assembly programmer he wouldn't even notice. Nomenclatural conventions is a microcosm of hacking. The things people say about how names should be -- short, long, structured, typographically this way or that -- these are analogous to what people say hacking should be. It is telling that early lispers didn't give a shit about names that looked like opcodes.

(5) As profound as Lisp was, it probably did suffer from being taught by the same guys that came up with those Principles. Like Chaucer urged before, let us separate the wheat from the chaff.


Must everything be a lesson?


Everything that gets upvoted to the top HN position should have... something interesting about it in some way. Apart from a linkbait title.


Not necessarily, but favoring intellectually rewarding stuff is a good way to keep the front page from getting saturated with e.g. lolcats.


I think, as pointed out in another comment, that this post isn't just lolcat-esque--it does paint a picture of programming in the 1980s, something many of us haven't experienced.


I agree - I've heard of people considering Lisp (with its garbage collection) incredibly indulgent and inefficient decades ago, but that's sufficiently before my time that it was an interesting read.

I just think that, in general, "voted up because it's funny, even though it's also dumb" is a terrible precedent.


The main point he seems to be making is that LISP is terribly inefficient from an early 80s point of view because there's an abstraction layer between LISP code and the CPU.

These days of course that's a moot point, as almost all day-to-day code is implemented in a language that has such a layer. Ruby has a VM with multiple implementations, Java has JVMs, C# has the Microsoft dotNet runtime and Mono, etc.

I can't really tell whether or not this post is supposed to be funny but I'm guessing that the only reason this made the front page is because of the polarizing title.


I don't hate Lisp but I do agree that in those days limited stack depth was a problem. I don't know if this is an accurate assessment of Lisp but I think of pure Lisp as language where all of the data is stored entirely in the call stack. In other words it's just functions and arguments piled up in a stack. Is that right?


Actually, no.

For some reason many people have impression that lisp is "functional language" and so on, but that is not true, and certainly was not true for first practical implementations (practical = really running on some hardware).

One could discuss various approaches of implementing LISP, but in the end implementation either do not use stack at all (which is especially useful when you want Scheme-like semantics) or use stack in way that is not too different from C or assembly programs (and when it is different it in most cases means using less stack space).

Other thing is that particularly common implementation strategy (at least in various simple and educational implementations) of heap allocation and garbage collection was ignoring the problem and simple allocating heap structures by incrementing some pointer and never reclaiming used memory. Which in the end looks somehow like "using ridiculous amounts of stack space".


You have to heap-allocate data sometimes, too. There's nothing special about Lisp in this respect. I mean, why wouldn't you have to use a heap?


Sounds like a construction worker enrolling in an architecture class. It would be baffling. The author doesn't seem to acknowledge the value of processes abstracted from laying bricks. My guess is that he hasn't faced many ad-hoc buildings.


Sounds like a HN geek enrolling in an irony class. It would be baffling. Try reading the article slower :-)


Eh, it's a troll. I sensed sarcasm but honestly, it's rendered as a troll. The title itself is present tense. There is no hint other than extra-article content that the author means anything other than what he's saying.

Didn't expect to see this type of thing on HN.


What, nobody wants to piss on PG's beloved language?

Well, I DO hate Lisp and I'll tell you why. Syntactically speaking is the ugliest of all. I don't deny its inner beauty but those parenthesis are a stopper for me.

Look, nowadays we have powerful IDEs that help programmers do their job. How about an editor that subtly hides the parenthesis so they are out of the way when you don't need them?

Maybe then I would consider it, meantime no, I don't want to be cool.


So things like paredit mode (http://mumble.net/~campbell/emacs/paredit.el) for Emacs don't count because... why exactly?

Honestly I find most people who "hate parenthesis" don't actually hate parenthesis. They hate the idea of having to delimit the start of a statement as well as the finish. And unless your editor is helping out it can sometimes be a pain (let's admit it, it can be). But like every computer language, Lisp makes a tradeoff here and says that the features they can enable with such an incredibly regular syntax outweigh the pain of needing an editor mode.


Hey, I DO hate parenthesis as much as I hate brackets, angled, square and curlies. They are visual speedbumps, at least for me. Therefor I hate all C based and java languages, also html and xml. Again, visually speaking.

Good to know there are editors out there that deal with the issue, I didn't know they existed.


I think that leaves Haskell and Python?

The Python indentation thing was an inspired choice and usually works very well, but sometimes fails in a way that would be solved neatly if everything was delimited with parentheses. But it is a pragmatic compromise much in the spirit of the rest of Python (or "Pythonic" as they say). There is a lot of use of delimiters in data collection literals and list comprehensions, though, which are commonly used parts of the language.

Haskell, to me, demonstrates the problem of getting rid of almost all delimiters. I have a hard time scanning Haskell code and discerning the structure or figuring out what is being applied to what, etc.

I like Clojure's approach: mix up the delimiters to provide cues for mentally parsing the code at a glance. If you see [], it is usually a place where variables are defined and destructuring can happen. () is function or macro application or a special form. {} is mapped data. Along with consistent indentation, I find it quite readable.

I credit you, though, for declaring your hate of all delimiters equally :). I find the people who abhor parentheses while never noticing all the {};<> in their preferred language a bit maddening.


Parentheses, braces etc. sure beat BEGIN and END.


This is called "Python" ;-)


And ruby, both nice languages syntactically speaking, even if they don´t heap, or stack, or allocate stuff, or garbage collect, or do the dishes...


Indentation reader for Scheme:

http://www-student.cs.york.ac.uk/~anc505/code/sugar-read.scm

Some less-parenthesised forms for Scheme:

http://www-student.cs.york.ac.uk/~anc505/code/macro-sans-par...

Scheme mode for Emacs will fade out any remaining parenthesis :)


"Look, nowadays we have powerful IDEs that help programmers do their job."

There is a very good one for Lisp called SLIME.

(I suppose it's actually SLIME + Emacs, but that makes my point less concise so I will leave this as a parenthetical remark.)


Never mind, I hate Haskell. And since I'm too lazy to learn it, I'll hate it maybe forever...


die hard ASM fan hates higher level languages, news at 11.

is it me or is HN getting worse by the day?


It's you. This is satire.


I realize that now, heh. One of those mornings I guess.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: