4 ms·
I don't know that it is intellectually lazy. It makes a lot of sense. If a lisp dialect had a large, vibrant ecosystem on the scale of Python or Javascript, th
by aaron-lebo 11y ago
I don't know that it is intellectually lazy. It makes a lot of sense.
If a lisp dialect had a large, vibrant ecosystem on the scale of Python or Javascript, then a lot of people would see the parens, see the advantage of having them, work their way through it and eventually get used to them and even embrace them because they see a real payoff.
That's not the case with lisp dialects. The major payoff with lisp dialects is macros. But for most people, it isn't obvious why they are important. They are something you have to use to really get.
So the intellectually reasonable position for most people is to either ignore lisp or laugh at it. Meanwhile, you see endless articles like this posted over the years (not knocking the article itself), trying to explain lisp in a kind of reverence and terminology usually associated with religious texts. "Hey, brother, you just need to see the light".
I've been doing quite a bit of Clojure coding lately and I love it. I just can't see a lisp ever catching on. Actually, the project I'm working on is a lisp that does not look like a lisp but compiles down to Clojure. The parens aren't really necessary for lisp's best feature, as seen by Elixir. Here's a bit of my language:
" " join([1, 2, 3]) count println
- mbrock 11y agoTo "ignore or laugh at" a whole family of important and interesting languages because they aren't as popular as Python or JavaScript is exactly laziness, or at best pragmatic, but has nothing to do with intellectual reasonableness.
- deleted 11y ago[deleted]
- deleted 11y ago[deleted]
- aaron-lebo 11y agoWhy is being pragmatic not intellectually reasonable?
- gknoy 11y agoOne should not sneer or laugh at languages like Perl, COBOL, or similar, simply because there are others we like better, or are more popular. I used to be a HUGE Perl fan, and discounted Python for years. I figured that I already knew Java, and since Python and Perl were effectively similar, it was a waste of my time to study both. I now regret that. As formative as that was for my growth as a programmer, I've loved coding in Python more than almost any other language -- and I delayed that discovery by a decade because I wrote it off as "effectively the same as" Perl. Sure, it was pragmatic to focus on one language that I was learning and using. But the reasons I did so were flawed, IMO.
- mbrock 11y agoI'm not saying being "pragmatic" in this way is "bad" or "wrong," and since this is pretty much a total derail, I'll stop engaging in this thread. But, like, this is the actual thing you said that I was responding to: "the intellectually reasonable position for most people is to either ignore lisp or laugh at it" I said that such a position has nothing to do with "intellectual reasonableness" because it's barely an intellectual position at all. There is no propositional content; there is very little thought involved at all; it's a default "meh" position that is more accurately labelled "laziness."
- cp9 11y agothe parens seems pretty necessary for that expression, I can't even tell what it's doing... it's joining the vector 1,2,3 with a space to make "1 2 3 ", right? so what is that count doing there? I'm not saying that lists are the end all be all of syntax (clojure has vectors for a lot of things specifically to reduce the parens), but you need something there to make it clearer
- aaron-lebo 11y agoI could have explained the syntax. If you are familiar with Python, it more or less is equivalent to something like: " ".join([1, 2, 3]).count().println() Which, imo, reads much better than: (println (count (join " " [1 2 3]))) Of course, Clojure has the threading macro, but this language emphasizes it.
- kazinator 11y agoOr, rather, maybe it will read better, about a generation after the first crop of high schoolers start being taught f(x).sin().log() instead of log(sin(f(x))).
- aaron-lebo 11y agoI get what you are saying, but when you are talking about programming languages as opposed to math or another domain, more people are familiar or comfortable with the former, hence the reason for numerous posts like the original having to explain why lisp's syntax is a good thing.
- kazinator 11y agoPosts explaining why Lisp's syntax is a good thing have to deal with moving the left parenthesis to include the function: log(sin(f(x)))) -> (log (sin (f x))) They don't have to evangelize function composition being indicated by nesting.
- Someone 11y ago