Live data from Hacker News

The Nature of Lisp (2006)

defmacro.org

31–40 of 95 posts

Re: The Nature of Lisp (2006)

#31
post #2

"Why on Earth would anyone want to use a language with such horrific syntax?!" What is it with statements like this? It just sounds like a 'meme' to me, that everyone hears (even from advocates like this one) at first that the 'syntax' (of which there is a lot less than most languages in a Lisp) is 'horrible'? Of course, we, the learn-ed of Lisp, say that after a while the 'parens just disappear', which they don't, b…

It is a true statement, lisp syntax is wierd.

You spend years learning that 2 + 2 = 4, seeing (+ 2 2) for the first time is a bit of a shock.

The point is overused but its a good point and he doesnt dwell on it. Arguments shouldnt be evaluated just by how interesting they are.

Re: The Nature of Lisp (2006)

#32
post #2

"Why on Earth would anyone want to use a language with such horrific syntax?!" What is it with statements like this? It just sounds like a 'meme' to me, that everyone hears (even from advocates like this one) at first that the 'syntax' (of which there is a lot less than most languages in a Lisp) is 'horrible'? Of course, we, the learn-ed of Lisp, say that after a while the 'parens just disappear', which they don't, b…

That said, it would be nice if lisp used square brackets for this instead. Easier to type on boring old US QWERTY.

Parentheses are so much more frequently typed than square brackets in almost every context that you are better off following the Lisp Machine keyboard layout and swapping them on your keyboard even if you do not program in Lisp:

https://news.ycombinator.com/item?id=14985932

Re: The Nature of Lisp (2006)

#33
post #12
post #2

"Why on Earth would anyone want to use a language with such horrific syntax?!" What is it with statements like this? It just sounds like a 'meme' to me, that everyone hears (even from advocates like this one) at first that the 'syntax' (of which there is a lot less than most languages in a Lisp) is 'horrible'? Of course, we, the learn-ed of Lisp, say that after a while the 'parens just disappear', which they don't, b…

I don't really mind the parens, but the whole attitude feels indicative of a problem. Like - it's 2018 and people are still using 'cdr' and 'cons' as terminology and happily expecting other people to learn those words and not even feeling bad about it. If the person justifying Lisp doesn't mind that the word 'cons' is terrible, why should I trust their aesthetic sense about anything? If I have to have "miserable nota…

> Like - it's 2018 and people are still using 'cdr' and 'cons' as terminology and happily expecting other people to learn those words

Ok, so what do you think are better names for those operators and why would they be better?

Re: The Nature of Lisp (2006)

#34
post #25

The surface problem of LISP are the parenthesis. The deeper problem is that its a very potent NIH enabler: most of us are not really that talented or have the time to properly invent things; those that are tend to not quite like other people's things (and are good at spotting flaws in them) so they work on their own "better" things (e.g. see arc).

JavaScript library space is basically pure NIH - maybe it's a Lisp, too?

Re: The Nature of Lisp (2006)

#35
post #27

Earlier quoted context omitted.

> Like - it's 2018 and people are still using 'cdr' and 'cons' as terminology and happily expecting other people to learn those words and not even feeling bad about it. Oh please, cry me a river. Like monads, promises, or props are any better. > If the person justifying Lisp doesn't mind that the word 'cons' is terrible, why should I trust their aesthetic sense about anything? If I have to have "miserable notations"…

I know that. My point is that the antiquated terminology's survival seems to be a symptom of a culture that values the wrong things: like pointless historical names instead of clear modernized ones. (Monads and props are definitely not better. You won't find me defending them! 'Promise' is a much better name, though.)

FIRST and REST as names for list operations have been added 40 years ago. Pattern destructuring and list templates are as old.

Naming is important, but the core Lisp names can be learned in a day.

Re: The Nature of Lisp (2006)

#36
post #34
post #25

The surface problem of LISP are the parenthesis. The deeper problem is that its a very potent NIH enabler: most of us are not really that talented or have the time to properly invent things; those that are tend to not quite like other people's things (and are good at spotting flaws in them) so they work on their own "better" things (e.g. see arc).

JavaScript library space is basically pure NIH - maybe it's a Lisp, too?

It does have a surprising amount of Lisp DNA, despite the horrible semantics.

Re: The Nature of Lisp (2006)

#37
post #35
post #27

Earlier quoted context omitted.

I know that. My point is that the antiquated terminology's survival seems to be a symptom of a culture that values the wrong things: like pointless historical names instead of clear modernized ones. (Monads and props are definitely not better. You won't find me defending them! 'Promise' is a much better name, though.)

FIRST and REST as names for list operations have been added 40 years ago. Pattern destructuring and list templates are as old. Naming is important, but the core Lisp names can be learned in a day.

Yes, and yet the names Cons and Cdr still exist and come up in introductory documentation and are still used in discussions constantly -- why?

Re: The Nature of Lisp (2006)

#38
post #25

The surface problem of LISP are the parenthesis. The deeper problem is that its a very potent NIH enabler: most of us are not really that talented or have the time to properly invent things; those that are tend to not quite like other people's things (and are good at spotting flaws in them) so they work on their own "better" things (e.g. see arc).

The biggest problem, related to the NIH or not, is that other language ecosystems every month race ahead with new libraries, features, and compelling reasons to use them. The best arguments for lisp are 12 years old, in comparison. Over time the advantages of lisp have gotten smaller and smaller, assuming they were ever anything more than the rationalizations of happy users. When the options were Python, Ruby, PHP, C…

If you are just gluing code together, Lisp is not necessarily the best choice.

If you are working on difficult problems where you actually have to devise non-trivial algorithms, then Lisp is a good choice. The problem then becomes feeding that algorithm – when there are so many great libraries everywhere else to retrieve data from and send to other places, it becomes cumbersome to do it in Lisp.

There is also value in restricting programmer flexibility. I suspect Golang got popular precisely because of its straighjacket (and I say this while staring at Golang code in another monitor).

Turns out most people want Legos. Real artists are fewer in number, but those will want clay instead.

Edit: typo. Edit2: everywhere else

Re: The Nature of Lisp (2006)

#39
post #34

Earlier quoted context omitted.

JavaScript library space is basically pure NIH - maybe it's a Lisp, too?

It does have a surprising amount of Lisp DNA, despite the horrible semantics.

You can bet that every day Javascript users reinvent Lisp stuff from 50 years ago. Javascript on the language level is like Lisp from the end 70s minus better numerics and minus macros and minus using JSON as a syntax for programs. The prototype stuff is straight from Actors in Lisp, mid 70s.

Re: The Nature of Lisp (2006)

#40
post #33
post #12

Earlier quoted context omitted.

I don't really mind the parens, but the whole attitude feels indicative of a problem. Like - it's 2018 and people are still using 'cdr' and 'cons' as terminology and happily expecting other people to learn those words and not even feeling bad about it. If the person justifying Lisp doesn't mind that the word 'cons' is terrible, why should I trust their aesthetic sense about anything? If I have to have "miserable nota…

> Like - it's 2018 and people are still using 'cdr' and 'cons' as terminology and happily expecting other people to learn those words Ok, so what do you think are better names for those operators and why would they be better?

'first' and 'rest' for 'car' and 'cdr' are obviously better, because they say what's going on, and that's why some people are already using them. I'm not sure if there's a good term that's not already used for 'cons'. Maybe 'Join' or something.

Do I even need to justify why these are better names? The problem is not that people don't know about better names. Everyone does [0]. My issue is that this doesn't seem to bother people.

[0]: https://www.gnu.org/software/emacs/manual/html_node/eintr/St...

Post reply on HN