Hacker News new | ask | show | jobs
by nvlled 37 days ago
This is your comment but with "zero syntax":

  I just don't like them

  That is what I dont get I have used many different languages. and often is not the syntax that I dont like . I may dislike the semantics. the runtime. the tooling. but syntax. really how. It.s like. I hate Greek alphabet. even though this is a weird comparison . alphabet is a flat bag of arbitrary symbols with no structural role. so disliking it sounds incoherent by construction. I just cant ever get over .sexpressions hate. in such a way like. What are you even talking about. Theres practically zero syntax in Lisp.
I can only think of the word disingenuous when I can see someone outright refusing the possible downsides of s-expressions (you probably meant zero syntax since it's still possible to have syntatic s-expressions.).
1 comments

I never said s-expressions have no downsides, I merely tried to explain why I think people hate them. They do have downsides - diffing and merging and complex macros are good examples - but calling Lisp code outright "unreadable" is equally disingenuous. There are trade-offs, but they are not without benefits, and often the benefits do outweigh the cons. It's just sad that people choose to completely ignore them simply because they have visceral reaction to the unfamiliar visual structure.
> I never said s-expressions have no downsides

You didn't say it directly, but it's implied from what all you said in this thread, just as no one in this thread said "outright unreadable". Up until now, there's no acknowledgement of the downsides and you refuse to even understand the dissenting point of view. If you truly do acknowledge the downsides, you would (try to) understand why people "hate" it. But no, "people are too incoherent to not like the beautiful perfection of s-expressions" as the lines in between would say.

Look, it is very simple. Compare it to natural languages. Unfamiliarity with a language may evoke aversion and even hatred, yet anyone who reaches fluency in a foreign language just "magically" stops hating it. The language becomes a pragmatic tool to use, that's all. Some may argue, saying something like: "well, my friend who knows Russian says he hates it". You dig a little further and you discover that the friend hates Russian now because they were born in Ukraine, and before 2014 they had no issues with it. Turns out they don't really hate the language, do they? They don't hate phonology, morphology, syntax - they "hate" the culture, the idioms, the orthogonal stuff, right?

Save the time and resources spent on learning (let's for the sake of the argument imagine we get it for free), there are zero downsides to reaching fluency in a foreign language. Zero. Sure, one still may prefer reading Tolstoy, Bulgakov and Dostoevsky in English, even though they'd probably agree - to unveil the full gamut of emotions, it needs to be read in Russian, simply because there are tons of interesting twists of phrases that are just inconceivable to be translated precisely. Same can be said about English - James Joyce's puns and phonetic play just don't port well; Beckett's rhythmic English is delicate; Carroll's wordplay and Victorian logic-games in "Alice" are extremely English-specific.

Alas, learning a natural language to fluency may take a lifetime. That's why we don't go around screaming "Learn Spanish if you want to understand Borges, Márquez and Cortázar!". Yet at the same time, nobody in the right mind would ever join a discussion only to say "I hate Spanish, it's weird and hard to read".

And just like there are no downsides to acquiring a natural language (once again, let's say you get it free - ignore the time cost), there are really no big drawbacks to getting fluency in Lisp. It is universally better to know it (even if you don't use it every day) than not knowing it at all. Lisp teaches you that most syntax is noise. Once you internalize that, you write better code in any language because you're not cargo-culting idioms - you understand why they exist.

I'm not saying Lisp is universally better than the alternatives. I'm just saying that it has tremendous value, and the "haters" are just missing it out.

And just like I won't ever trust anyone claiming they dislike a language despite enormous fluency, I just can't see how anyone would know Lisp and yet just hate it. I stand by my words; the bias and hatred come from misunderstanding. I understand why programmers may dislike a specific PL - but Lisp is not a single programming language. It's an idea, the idea that influenced pretty much every single PL being used in the industry today. Like I dunno, how could anyone hate recursion, or closures, or pattern matching, or parametric polymorphism - these are just ideas, specific tools to use in specific context and situation. The only reason I see someone may hate them is because they have not gained sufficient understanding for how they work.

> Compare it to natural languages.

Assuming any such comparison is valid is purely speculative. There are significant differences.

> anyone who reaches fluency in a foreign language just "magically" stops hating it.

Not true (plenty of people learn Mandarin and regret doing so), and even if it were true it could just be survivorship bias - of course people who hate a language are less likely to become fluent in it.

> Turns out they don't really hate the language, do they? They don't hate phonology, morphology, syntax - they "hate" the culture, the idioms, the orthogonal stuff, right?

No, sometimes people really do hate the language.

> nobody in the right mind would ever join a discussion only to say "I hate Spanish, it's weird and hard to read".

That might not be a productive thing to say in a discussion, but that doesn't mean it can't be true.

> Like I dunno, how could anyone hate recursion, or closures, or pattern matching, or parametric polymorphism - these are just ideas, specific tools to use in specific context and situation.

Plenty of people hate any or all of those things. I'd say it's reasonable to hate a tool that tends to have bad consequences - e.g. a language feature that makes code superficially easier to write but hard to refactor or debug.

> Plenty of people hate any or all of those things.

Oh come on. You're flummoxed about things that are not controversial. You don't have to listen to some rando HN commenter like me - there isn't a line-up of renowned CS figures or prominent programmers who ever harshly criticized Lisp to absolute rejection, even Dijkstra. People expect him to have bashed Lisp, but he actually praised it (and not once): "Lisp has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts." And there's a long line of well-known names from Alan Kay to Steele, Matz and Goetz, etc. who publicly said great things about the grand idea of Lisp. That is all well-documented and known. This isn't some "recorded history of the past", it's still going on - Clojure-like languages for different runtimes popping up every few months. Lisp isn't BASIC, Fortran or COBOL, yet some people waste so much energy to prove to themselves that it's somehow "wrong" or has "bad consequences", while Apple, Cisco, Netflix, Walmart, CircleCI, Nubank and many others have successfully built and maintained large projects. All the while so many "opposing" ideas quietly died over the years - Ada's intended universal dominance; anti-GC dogma; Algol 68 complexity-heavy direction (though Algol's good ideas lived on); rigid, ceremony-heavy, anti-interactive approaches consistently faded, while the dynamic/interactive/symbolic cluster that Lisp has pioneered keeps getting re-adopted.

What serious programmer ever ignores Lisp influence or importance? I suppose an ignorant one. I get it, plenty of serious programmers acknowledge the influence and still rationally choose not to use it, but outright rejecting the idea because it doesn't "visually appeal to them" - that is some naivete.

Whatever. You free to hold any beliefs - my actual, pragmatic, lived experience says otherwise.

> there's a long line of well-known names from Alan Kay to Steele, Matz and Goetz, etc. who publicly said great things about the grand idea of Lisp.

About the ideas, yes, helped by being such an early language that it can lay claim to being the originator of a great many things. About the syntax, rather fewer.

> Apple, Cisco, Netflix, Walmart, CircleCI, Nubank and many others have successfully built and maintained large projects

There are a great many success stories and just as many failure stories. 60+ years on, Lisp continues to exist but remains niche.

> rigid, ceremony-heavy, anti-interactive approaches consistently faded, while the dynamic/interactive/symbolic cluster that Lisp has pioneered keeps getting re-adopted.

Yes and no; the pendulum swings but the oscillations get smaller. At this point the programming world has pretty much converged on present-but-lightweight typing with inference and optional annotations, for example; there are no new serious pure dynamic languages being made, and all major dynamic languages are putting huge effort into retrofitting typing. Long edit-deploy-test cycles aren't coming back but nor is live-editing your production system.

> What serious programmer ever ignores Lisp influence or importance?

That's quite a different thing from saying that it's pleasant or even good. Every serious critic acknowledges that e.g. David Foster Wallace was influential and important, but many openly hate actually reading his work.

> actual, pragmatic, lived experience

Hardly. You've built this a whole edifice of beliefs that wouldn't withstand 5 minutes outside the Lisp bubble.